cd 到变量在 shell 脚本中不起作用

Man*_*ish -1 bash shell-script

我有以下变量

$a=/opt
$b=var
$c=usr
$path=/$a/$b/$c/man
Run Code Online (Sandbox Code Playgroud)

当我执行 cd $path 时,它说没有这样的文件或目录。

但这条路径实际上存在 /opt/var/usr/man .. 有什么建议吗?

Jul*_*ier 5

问题是变量赋值中的语法错误。

$a=/opt
$b=var
$c=usr
$path=/$a/$b/$c/man
Run Code Online (Sandbox Code Playgroud)

.. 永远不会工作,因为变量赋值不能以$.

你应该这样做:

a=opt
b=var
c=usr
dir=/$a/$b/$c/man
cd $dir
Run Code Online (Sandbox Code Playgroud)

请注意,我更改了最终变量名称,因为使用两个名称相同但情况不同的变量是一个坏主意,因为它可能会造成混淆。(PATH作为一个非常重要的环境变量)