转义bash脚本中的特殊字符

时间:2015-02-25 18:30:10

标签: linux bash shell scripting

我有一个命令,我想放入一个脚本,但我遇到了问题。该命令非常挑剔,看起来像这样:

command_to_run -H 'ip_address' -u 'user' -p 'passwd' --register naming_data "/location/of/backup/folder/" "[destination-location]"

我想创建一个交互式bash脚本,询问用户ip_address,用户,密码,备份文件夹的位置和目标位置。我遇到的问题是我将用户的输入存储在变量(IP_ADD,USERNAME等)上,但当我将其传递给命令时如

$COMMAND -H '$IPADD' -u '$USERNAME' .....

但我的问题再次出现在单引号中,“/”“[]”广告传递变量。任何人都可以给我一个提示,我需要修复什么才能使它工作?

2 个答案:

答案 0 :(得分:1)

就像Etan所说,使用双引号:

command_to_run -H "$ip_address" -u "$user" -p "$passwd" ....

答案 1 :(得分:0)

使用双引号:

$COMMAND -H "$IPADD" -u "$USERNAME" ...

如果在shell中使用单引号,变量将不会扩展,这意味着文字$USERNAME将用于用户名。