抱歉问了这么愚蠢的问题,但我花了一些时间才弄清楚!!
#! /bin/bash a=/etc cd $a
通常情况下,如果我为变量赋值$a
,然后cd $a
,它就会起作用。但是当我创建一个单独的文件时,它却不起作用!
为什么会这样呢?
答案1
您正在执行脚本,#!/bin/bash
该脚本会启动对您不可见的新bash
会话,并将其目录更改为,$a
然后退出。您只是看不到它。
为了实现你的目标,我稍微修改了你的脚本:
$ cat test.sh
#!/bin/bash
a="/etc/"
cd $a
echo $a
$ chmod +x test.sh
.
并使用脚本前的点(或关键字)执行它source
。它在当前 bash 会话中执行脚本:
结果:
user@ubuntu:~/test$ . test.sh
/etc/
user@ubuntu:/etc$