例如,test.sh
#!/bin/bash
for i in "${@}"; do
echo "${i}"
done
如果您运行./test.sh one 'two' "three"
,您将获得
one
two
three
但我想得到的是:
one
'two'
"three"
我怎么能得到这个?
感谢。
答案 0 :(得分:2)
Bash从字符串中删除引号。因此,如果您需要引号,则需要将它们放在其他引号内。
这样做的:
./test.sh one "'two'" '"three"'
应该给你想要的结果。
另一种可能性是逃避你的引号,以便bash知道它是字符串的一部分:
./test.sh one \'two\' \"three\"
会起作用,所以会:
./test.sh "one" "\'two\'" "\"three\""
否则,您始终可以通过执行以下操作在脚本中再次添加引号:
echo "\"${i}\""
例如。
答案 1 :(得分:2)
你需要调整你的输入。例如:
# ./test.sh one \'two\' \"three\"
one
'two'
"three"
#