在脚本中回显$ PS1

时间:2018-02-07 13:06:31

标签: bash shell ps1

愚蠢的问题,但由于我是Linux操作系统的新手,我很难制作这个简单的脚本来回应PS1的结果。

如果我在bash中输入echo $PS1,它会显示结果,但不会显示在脚本中。它返回空白。

示例:

#!/bin/bash
ps1=$(echo $PS1) 
echo $ps1

有关初学者的提示吗?

提前致谢。

3 个答案:

答案 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"