if-shell的Tmux用法

ma8fv8wu  于 2023-06-24  发布在  Shell
关注(0)|答案(1)|浏览(93)

我正在尝试让if-shell工作。我想实现以下内容:
1.检查vim是否正在运行
1.如果是,将status-left设置为一个值
1.如果否,则将status-left设置为另一个值
我为第1步编写了以下命令:

is_nvim="ps -o state= -o comm= -t '#{pane_tty}' | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?|e)(diff)?$'; echo $?"

如果vim处于活动状态,则返回0,否则返回1。我用set -g status-left "#($is_nvim)"测试了它,它在左下角正确地打印了0或1。
然后我尝试将此命令(is_nvim)与if-shell一起使用。我尽力了

if-shell "$(is_nvim)" "set -g status-left 'a'" "set -g status-left 'b'"

和/或

if-shell '[ "$(is_nvim)" -eq 1 ]' "set -g status-left 'a'" "set -g status-left 'b'"

但两次尝试都没有成功,我有点困惑为什么。
有谁知道为什么if-shell不工作,尽管is_nvim返回正确的值?

mwyxok5s

mwyxok5s1#

要用变量的值替换变量,你需要在它的前缀加上$。使用$($is_nvim)代替$(is_nvim)

相关问题