愚蠢的问题,但由于我是Linux操作系统的新手,我很难制作这个简单的脚本来回应PS1
的结果。
如果我在bash中输入echo $PS1
,它会显示结果,但不会显示在脚本中。它返回空白。
示例:
#!/bin/bash
ps1=$(echo $PS1)
echo $ps1
有关初学者的提示吗?
提前致谢。
答案 0 :(得分:4)
PS1
是一个不是“导出”的变量,因此它只在shell中可见,但不能从任何子进程(如脚本)中看到。
答案 1 :(得分:2)
PS1
通常不会导出,因为它通常在.bashrc
中定义,它由每个需要PS1
的shell提供。因此,它不会由执行脚本的非交互式shell继承。
答案 2 :(得分:0)
其他答案都是正确的。如果你向你的shebang添加-i
标志,则表示它应该是一个交互式shell,因此它会读取你的〜/ .bashrc - 请参阅https://www.gnu.org/software/bash/manual/bashref.html#Invoking-Bash
#!/bin/bash -i
ps1="$PS1"
echo "$ps1"