在zshshell脚本中访问$PS1和$HISTFILE环境变量的正确语法是什么?

w41d8nur  于 2023-05-29  发布在  Shell
关注(0)|答案(1)|浏览(123)

为什么这个不管用?

#!/bin/zsh
echo $PS1

或者这个

#!/bin/zsh
foo="$PS1"
echo $foo

我想在zsh脚本中使用$PS1和$HISTFILE变量。我读到该变量可能不会自动可用,因为它是特定于交互式shell环境的,但找不到可靠的参数。

f1tvaqid

f1tvaqid1#

由于PS1只在交互式shell中设置,您可以更改shebang以设置交互式标志:

#!/bin/zsh -i
echo $PS1

请注意,这意味着所有其他交互式 shell 属性也会生效,例如阅读交互式shell的启动文件。也许你可以告诉我们为什么你想在脚本中访问PS1,然后我们可能能够提供一个不同的解决方案。
获取PS1HISTFILE的值的另一种策略可能是简单地从设置它们的文件中获取源代码。一种简单的方法甚至可以是在$HOME中grep一些特定的点文件。

相关问题