命令替换的正确格式
Proper formatting of Command Substitution
我正在尝试添加当前正在播放的歌曲(如果我的 ZSH 提示中有一首歌曲)。我正在使用 JXA 命令 osascript -l JavaScript -e "Application('Music').currentTrack.name()"
。我试图将它分配给一个变量。然后回显该命令。
precmd() {
SONG=$( echo -e osascript -l JavaScript -e "Application('Music').currentTrack.name()" )
LEFT=echo $SONG
RIGHT="$(dracula_time_segment) $(battery_pct_prompt)"
RIGHTWIDTH=$(($COLUMNS-${#LEFT}))
}
我尝试了多种变体,例如:在表达式内部和外部回显以及各种标志。
您根本不需要 echo
,正如您稍后在设置 RIGHT
时的命令替换所证明的那样;命令替换只需要一个命令并执行它。
SONG=$(osascript -l JavaScript -e "Application('Music').currentTrack.name()")
LEFT="$SONG"
你可以结合前两个命令; SONG
不需要。
LEFT=$(osascript ...)
我正在尝试添加当前正在播放的歌曲(如果我的 ZSH 提示中有一首歌曲)。我正在使用 JXA 命令 osascript -l JavaScript -e "Application('Music').currentTrack.name()"
。我试图将它分配给一个变量。然后回显该命令。
precmd() {
SONG=$( echo -e osascript -l JavaScript -e "Application('Music').currentTrack.name()" )
LEFT=echo $SONG
RIGHT="$(dracula_time_segment) $(battery_pct_prompt)"
RIGHTWIDTH=$(($COLUMNS-${#LEFT}))
}
我尝试了多种变体,例如:在表达式内部和外部回显以及各种标志。
您根本不需要 echo
,正如您稍后在设置 RIGHT
时的命令替换所证明的那样;命令替换只需要一个命令并执行它。
SONG=$(osascript -l JavaScript -e "Application('Music').currentTrack.name()")
LEFT="$SONG"
你可以结合前两个命令; SONG
不需要。
LEFT=$(osascript ...)