所以问题是我为密码生成器和验证器创建了一个脚本。它要求用户输入密码并检查其规格。但问题开始时输入包含以下 - [,],(,)和&,其中我得到错误消息或者在& - process的情况下在后台启动,提示我取消运行脚本。
我如何以某种方式将输入读取为字符串而不是包含命令/其他字符的字符串来提供错误?
我不能在这里发布代码,因为它是一个学校项目。
答案 0 :(得分:0)
参考我在回复your last question时写的代码,看到我引用了chartypes
函数的arg?
chartypes 'This is A $24 @test.'
当给它提供一个已存储在变量中的字符串时,然后正如chepner所说,你需要使用双引号"
引用该变量,如下所示:
s='A string with various "special" chars: [ ] ( ) & !'
chartypes "$s"
您需要在此处使用双引号,以便bash正确展开$s
。如果您使用单引号'
,那么文字$s
将传递给该函数。
答案 1 :(得分:0)
所以我输入./passwordgen Jh7&它返回[1] 9329.如果是的话 ./passwordgen jdhh77( - 它给出了一个错误'('意外令牌。
由于在passwordgen
脚本启动之前清楚地解释了命令行,因此脚本中的任何内容都不能更改此解释。因此,如果脚本的参数包含shell特有的字符,则必须引用脚本的参数。
./passwordgen 'Jh7&'
./passwordgen 'jdhh77('