我正在尝试编写一个 shell 脚本,并获取输入参数,例如:
./test abc def ghi
如果echo $*
脚本里面有一个,它会列出参数,但是引号会消失,比如
./test abc "def ghi"
--> abc def ghi
我不想用反斜杠 as 运行命令./test abc \"def ghi\"
,尽管它可以解决这个问题。echo $2
不会解决里面的报价,比如./test abc "def ghi "jkl" mno"
有没有其他方法可以解决它?谢谢:)
您可以通过将双引号包含在单引号中来做到这一点,如下所示:
./test abc '"def ghi"'
解释:
用单引号括起来的所有内容都被 shell 解释为字符串文字。这是有关强引用与弱引用的更多信息。
您还可以使用单引号:
./test abc '"def ghi"'