为什么这个不管用?
#!/bin/zsh echo $PS1
或者这个
#!/bin/zsh foo="$PS1" echo $foo
我想在zsh脚本中使用$PS1和$HISTFILE变量。我读到该变量可能不会自动可用,因为它是特定于交互式shell环境的,但找不到可靠的参数。
f1tvaqid1#
由于PS1只在交互式shell中设置,您可以更改shebang以设置交互式标志:
PS1
#!/bin/zsh -i echo $PS1
请注意,这意味着所有其他交互式 shell 属性也会生效,例如阅读交互式shell的启动文件。也许你可以告诉我们为什么你想在脚本中访问PS1,然后我们可能能够提供一个不同的解决方案。获取PS1和HISTFILE的值的另一种策略可能是简单地从设置它们的文件中获取源代码。一种简单的方法甚至可以是在$HOME中grep一些特定的点文件。
HISTFILE
$HOME
1条答案
按热度按时间f1tvaqid1#
由于
PS1
只在交互式shell中设置,您可以更改shebang以设置交互式标志:请注意,这意味着所有其他交互式 shell 属性也会生效,例如阅读交互式shell的启动文件。也许你可以告诉我们为什么你想在脚本中访问
PS1
,然后我们可能能够提供一个不同的解决方案。获取
PS1
和HISTFILE
的值的另一种策略可能是简单地从设置它们的文件中获取源代码。一种简单的方法甚至可以是在$HOME
中grep一些特定的点文件。