![cd 到变量在 shell 脚本中不起作用](https://linux22.com/image/102451/cd%20%E5%88%B0%E5%8F%98%E9%87%8F%E5%9C%A8%20shell%20%E8%84%9A%E6%9C%AC%E4%B8%AD%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
我有以下变量
$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