在脚本中回显 $PS1

Raf*_*ael 4 bash shell ps1

愚蠢的问题,但由于我是 Linux 操作系统的新手,我无法制作这个简单的脚本来回应PS1.

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

例子:

#!/bin/bash
ps1=$(echo $PS1) 
echo $ps1
Run Code Online (Sandbox Code Playgroud)

给初学者的任何提示?

提前致谢。

gle*_*man 8

其他答案都是正确的。如果你将-i标志添加到你的 shebang,这会向 bash 发出信号,表明它应该是一个交互式 shell,因此它将读取你的 ~/.bashrc - 请参阅https://www.gnu.org/software/bash/manual/bashref .html#调用 Bash

#!/bin/bash -i
ps1="$PS1"
echo "$ps1"
Run Code Online (Sandbox Code Playgroud)


glg*_*lgl 5

PS1 是一个未“导出”的变量,因此它仅在 shell 中可见,而不能从任何子进程(例如脚本的)中看到。