Bash-将命令作为传递参数处理

时间:2014-10-04 04:45:29

标签: regex bash shell parameters

所以问题是我为密码生成器和验证器创建了一个脚本。它要求用户输入密码并检查其规格。但问题开始时输入包含以下 - [,],(,)和&,其中我得到错误消息或者在& - process的情况下在后台启动,提示我取消运行脚本。

我如何以某种方式将输入读取为字符串而不是包含命令/其他字符的字符串来提供错误?

我不能在这里发布代码,因为它是一个学校项目。

2 个答案:

答案 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('
相关问题