我可以在Bash脚本中获取围绕参数的原始引号字符吗?

时间:2019-01-31 06:53:01

标签: bash arguments quotes

我有一个记录用户参数列表的脚本。此列表稍后由getopt处理。

如果脚本是这样启动的:

./script.sh -a 'this is a sentence' -b 1

...然后保存"$@",我得到:

-a this is a sentence -b 1

...不带单引号。我认为(由于Bash处理引号的方式)将这些引号删除,并且脚本不可用。

为了记录的准确性,我也想包括引号。

是否可以在不使用引号的情况下获得原始参数列表?

1 个答案:

答案 0 :(得分:3)

不,在外壳程序对其执行空格标记化,通配符扩展和引号除去之前,无法获得命令行。

如果要传递文字引号,请尝试

./script.sh '"-a"' '"this is a sentence"' '"-b"' '"1"'

还请注意如何编写原始命令行

'./script.sh' '-a' 'this is a sentence' '-b' '1'