命令中的Bash替换变量

命令中的Bash替换变量,bash,shell,gnu,Bash,Shell,Gnu,如果我有上述变量,我可以使用什么功能在命令中使用它?(我猜这是某种类型的替代——所以如果是的话,我想知道它叫什么) 我如何使用上述变量执行ls/home/applefuit,因为显然ls/home/$myDirfruit不起作用。首先,您的变量声明不正确。声明中的=周围不能有空格: myDir = 'apple' 现在,ls/home/$myDirfruit不起作用,因为myDirfruit被视为变量名,而不仅仅是myDir。当变量名后面跟有有效的变量名组成字符时,需要使用{}将变量名括起来:

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


我如何使用上述变量执行
ls/home/applefuit
,因为显然
ls/home/$myDirfruit
不起作用。

首先,您的变量声明不正确。声明中的
=
周围不能有空格:

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

myDir='apple'
将扩大到:

ls /home/${myDir}fruit
此外,如果变量名中有空格,例如
myDir='foo bar'
,请在变量周围使用引号:

ls /home/applefruit

为了完整起见,单独引用
$myDir
就足以去掉大括号<代码>ls/home/“$myDir”水果。一般来说,大括号是扩展参数的标准方式,但当参数名称保持明确时,大括号可能会被删除。
ls /home/"${myDir}"fruit