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

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

我有以下变量

$a=/opt
$b=var
$c=usr
$path=/$a/$b/$c/man

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

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

答案1

问题在于变量赋值的语法错误。

$a=/opt
$b=var
$c=usr
$path=/$a/$b/$c/man

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

您应该按如下方式进行操作:

a=opt
b=var
c=usr
dir=/$a/$b/$c/man
cd $dir

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

答案2

如果你尝试这个echo $a$b$c你会得到这个

[root@centseven ~]# echo $a$b$c
/optvarusr

所以这不是aa执行。

你的最后一个变量应该是path=/$a$b$c/man

将您的变量更改为以下内容

$a=/opt
$b=/var
$c=/usr

然后尝试一下echo $path它对我有用

[root@centseven ~]# echo $path
/opt/var/usr/man

相关内容