Interactive 以.zshrc提示

Interactive 以.zshrc提示,interactive,tmux,zshrc,.profile,Interactive,Tmux,Zshrc,.profile,当我启动终端模拟器时,它要么创建一个新的tmux会话(名为$(whoami)),要么(如果它已经存在)附加到该会话。但是,如果已经有一个活动会话,我希望能够选择创建一个新会话 前面的行为是我的.zshrc脚本的一部分,所以我想我可以在其中添加额外的逻辑。这是我在另一个脚本中想到的: sessions=$(tmux list-sessions -F "#{session_created},#S") sessionCount=$(echo "$sessions" | wc -l) if (( $s

当我启动终端模拟器时,它要么创建一个新的tmux会话(名为
$(whoami)
),要么(如果它已经存在)附加到该会话。但是,如果已经有一个活动会话,我希望能够选择创建一个新会话

前面的行为是我的
.zshrc
脚本的一部分,所以我想我可以在其中添加额外的逻辑。这是我在另一个脚本中想到的:

sessions=$(tmux list-sessions -F "#{session_created},#S")
sessionCount=$(echo "$sessions" | wc -l)

if (( $sessionCount > 0 )); then
  now=$(date +%s)

  echo -e "Attach to an existing session, or start a new one:\n"

  # List sessions in reverse chronological order
  echo "$sessions" | sort -r | while read line; do
    created=$(cut -f1 -d, <<< $line)
    session=$(cut -f2 -d, <<< $line)
    age=$(bc <<< "obase=60;$now - $created" | sed "s/^ //;s/ /:/g")
    echo -e "\t\x1b[1;31m$session\x1b[0m\tcreated $age ago"
  done

  echo
  read -p "» " choice
else
  # Default session
  choice=$(whoami)
fi

exec tmux -2 new-session -A -s $choice
有什么问题吗

(这在OSX下,如果有区别的话。)

read-p“»”选项是等待用户输入前显示提示的
bash
语法。在
zsh
中,等效值为

read 'choice?» '
(也就是说,一个由变量名和提示符组成的单词加上一个
。整个单词都被引用了,尽管实际上只有
需要被引用,以防止
zsh
将单词解释为一种模式。)

read-p“»选项是等待用户输入前显示提示的
bash
语法。在
zsh
中,等效值为

read 'choice?» '
(也就是说,一个由变量名和提示符组成的单词加上一个
。整个单词都被引用了,尽管实际上只有
需要被引用,以防止
zsh
将单词解释为一种模式。)

read-p“»选项是等待用户输入前显示提示的
bash
语法。在
zsh
中,等效值为

read 'choice?» '
(也就是说,一个由变量名和提示符组成的单词加上一个
。整个单词都被引用了,尽管实际上只有
需要被引用,以防止
zsh
将单词解释为一种模式。)

read-p“»选项是等待用户输入前显示提示的
bash
语法。在
zsh
中,等效值为

read 'choice?» '

(也就是说,一个由变量名和提示符组成的单词加上一个
。整个单词都被引用了,尽管实际上只有
需要防止
zsh
将单词解释为一种模式。)

谢谢:我刚刚通过阅读
zshbuiltins
手册页发现了这一点,但是你的答案比我快:)奖金
zsh
提示:
${{(f)sessions}}
将为你提供会话计数,而无需调用
wc
)阅读了zsh的
read
手册页后,我可以做另一个技巧来简化这个脚本。具体地说,如果while循环更改为
while IFS=“,”read created session
谢谢:我刚刚通过阅读
zshbuiltins
手册页发现了这一点,但是你的答案比我更准确:)奖金
zsh
提示:
${(f)sessions}
将为您提供会话计数,而无需调用
wc
:)阅读了zsh的
read
手册页后,我可以做另一个技巧来简化这个脚本。具体地说,如果while循环更改为
while IFS=“,”read created session
谢谢:我刚刚通过阅读
zshbuiltins
手册页发现了这一点,但是你的答案比我更准确:)奖金
zsh
提示:
${(f)sessions}
将为您提供会话计数,而无需调用
wc
:)阅读了zsh的
read
手册页后,我可以做另一个技巧来简化这个脚本。具体地说,如果while循环更改为
while IFS=“,”read created session
谢谢:我刚刚通过阅读
zshbuiltins
手册页发现了这一点,但是你的答案比我更准确:)奖金
zsh
提示:
${(f)sessions}
将为您提供会话计数,而无需调用
wc
:)阅读了zsh的
read
手册页后,我可以做另一个技巧来简化这个脚本。具体来说,如果while循环更改为
while IFS=“,”read created session