我是shell脚本的新手,不能为我的生活找出原因,为什么这不起作用。
我试图从我的shell脚本中更改提示。当我在终端中键入它时它会起作用,但是当我运行脚本并从菜单中选择它时它什么都不做。这就是我所拥有的:
read input
case $input in
1) oldprompt=$PS1
export PS1="\d \t"
;;
2) echo "option 2"
;;
*) echo "option 3"
;;
esac
答案 0 :(得分:7)
环境变量是进程的本地变量,只传播到其子进程。如果你执行一个脚本并导出变量,那么按照设计,它对父进程没有影响。
相反,您需要source shell脚本,以便它在当前上下文中执行。
# This is wrong.
$ ./myscript.sh
# This will work though.
$ . ./myscript.sh