6

我是 shell 脚本的新手,我一生都无法弄清楚为什么这不起作用。

我正在尝试从我的 shell 脚本中更改提示。当我在终端中键入它时它可以工作,但是当我运行脚本并从菜单中选择它时什么都不做。这是我所拥有的:

read input   
case $input in   
1)    oldprompt=$PS1  
export PS1="\d \t"    
;;  
2) echo "option 2"  
;;  
*) echo "option 3"  
;;   
esac   
4

1 回答 1

12

环境变量对于进程来说是本地的,并且只会向下传播到它的子进程。如果您执行一个脚本并导出变量,那么按照设计,这对父进程没有影响。

相反,您需要获取shell脚本,以便它在当前上下文中执行。

# This is wrong.
$ ./myscript.sh
# This will work though.
$ . ./myscript.sh
于 2016-03-09T15:00:20.663 回答