我有一个代码
#!/bin/bash
case "$*" in
"info" ) echo "INFO * * *";;
"copy" ) echo `$0 info`;;
esac
打印这个
$ ./print.sh info
INFO * * *
$ ./print.sh copy
INFO print.sh print.sh print.sh
如何打印
$ ./print.sh info
INFO * * *
$ ./print.sh copy
INFO * * *
在复制情况下保留echo
:
"copy" ) echo ???;;
最佳答案
引用反引号,以便替换的星号随后不会被解释为通配符并展开。为了安全起见,还应该引用 $0
。
"copy" ) echo "`"$0" info`";;
此外,现在最好使用 $(...)
代替 `...`
。并且无需引用“信息”或“复制”。
copy) echo "$("$0" info)";;
请注意,echo "$(cmd)"
是多余的。您可以直接调用命令并跳过 $(...)
和 echo
。
copy) "$0" info;;
关于bash - 命令的回显结果保留回显,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52387223/