保留命令回声的回声结果

时间:2018-09-18 13:01:39

标签: bash

我有一个密码

#!/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 ???;;

1 个答案:

答案 0 :(得分:5)

引用反引号,以便随后被替换的星号不会被解释为glob并被扩展。为安全起见,也应引用$0

"copy" ) echo "`"$0" info`";;

最近最好用$(...)代替`...`。无需引用“信息”或“副本”。

copy) echo "$("$0" info)";;

请注意,echo "$(cmd)"是多余的。您可以直接调用该命令,而跳过$(...)echo

copy) "$0" info;;