我正在尝试编写一个 shell 脚本,并获取输入参数,例如:
./test abc def ghi
如果脚本中有echo $*
,它会列出参数,但是引号会消失,比如
./test abc "def ghi"
--> abc def ghi
我不想以 ./test abc\"def ghi\"
的形式运行带有反斜杠的命令,尽管它可以解决这个问题。 echo $2
不会解析里面的引号,比如 ./test abc "def ghi "jkl"mno"
还有什么办法可以解决吗?谢谢:)
最佳答案
您可以通过将双引号括在单引号内来实现,如下所示:
./test abc '"def ghi"'
解释:
由单引号引起来的所有内容都被 shell 解释为字符串文字。这是关于 Strong Quoting vs. Weak Quoting 的更多信息.
关于linux - shell脚本引号消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13715302/