由于某些原因,我需要我的脚本才能接受具有空格字符的参数。如果我有一个脚本如下,
for SOME_VAR in $@ do echo "$SOME_VAR" cd "$SOME_VAR" done;
如果我传递参数到脚本(假设它被称为foo.sh)
sh foo.sh "Hello world"
我期待脚本打印Hello world并将目录更改为“Hello world”。但是我收到这个错误信息
hello cd: 5: can't cd to hello world cd: 5: can't cd to world
那么我如何通过空格字符把参数传递给shell脚本中的命令呢?
你也必须用$引号括起来:“$ @”
这告诉shell忽略参数中的空格;它不会将所有参数变成一个非常长的字符串。