【发布时间】:2021-06-11 16:13:04
【问题描述】:
下面我有一个让我有点困惑的例子,任何帮助将不胜感激。
我将一个普通的命令行命令 (ls) 绑定到一个新变量。如果我回显它,输出只是命令(ls)但是如果我只使用没有回显的变量,我会得到命令的结果,但是为什么?是因为 $listdir 被翻译成 ls 所以我只得到输出吗?如果我使用 echo 命令,它会被解释为字符串吗?
router@test:~/scripting$ listdir=ls
router@test:~/scripting$ echo "$listdir"
ls
----- VS ----
router@test:~/scripting$ $listdir
basicLoop.sh fileflood.sh .......
感谢您的帮助!
【问题讨论】:
-
您期望的行为是什么?
-
$listdir被扩展,扩展的第一个词(这里是ls,也是这种情况下的唯一词)被解释为命令,如果有的话,后续的词, 作为参数。 -
呃,我认为这里唯一的答案是 Yes。不够发帖!