And*_*ini 2 bash environment-variables
我需要PS1在bash脚本中获取变量的值.
我知道在使用dot之前运行脚本会使bash将env变量传递给脚本,但是我PS1无论如何调用它都需要得到,因为我不相信谁会运行脚本.
我怎么得到它?
更新:变量已导出/etc/profile,但我无法得到它:
[ Test ] root@myhost:~# export | grep PS1
declare -x PS1="[ Test ] \\u@\\h:\\w\\\$ "
[ Test ] root@myhost:~# cat test.sh
echo $PS1
[ Test ] root@myhost:~# bash test.sh
Run Code Online (Sandbox Code Playgroud)
我没有得到最后一个命令的输出.
用'bash -i'开始你的测试脚本; 这使它的行为类似于登录shell,并且(除其他外)设置PS1.
如果您的脚本将作为可执行文件(.eg ./test.sh)运行,那么您还可以在初始行上提供-i,如下所示:
#!/bin/bash -i
Run Code Online (Sandbox Code Playgroud)
更新:这仅在您的脚本直接执行时才有效,例如
$ ./test.sh
Run Code Online (Sandbox Code Playgroud)
而不是:
$ bash test.sh
Run Code Online (Sandbox Code Playgroud)
因为它再次在非交互式shell中运行它.如果你想从命令行使用bash,那么这样做:
$ bash -i test.sh
Run Code Online (Sandbox Code Playgroud)