Bash 替换命令中的变量

Bash substitute variable in command

myDir = 'apple'

如果我有上述变量,我可以使用什么功能在命令中使用它? (我猜这是某种类型的替代 - 所以我想知道它叫什么)

我怎么能用上面的变量做一个ls /home/applefruit,显然ls /home/$myDirfruit是行不通的。

首先,你的变量声明不对。声明中 = 两边不能有空格:

myDir='apple'

现在,ls /home/$myDirfruit 不起作用,因为 myDirfruit 被视为变量名称,而不仅仅是 myDir。当名称后跟有效的变量名组成字符时,您需要使用 {} 将变量名括起来:

ls /home/${myDir}fruit

将扩展为:

ls /home/applefruit

另外,如果变量名中有空格,例如myDir='foo bar',在变量周围使用引号:

ls /home/"${myDir}"fruit