2

我想要一个命令,可以tmux使用zsh. 我想出了以下内容:

tmux list-windows | awk '{print $7}' |  sed 's/\]$//' | pbcopy

当我从命令行运行它时,它可以完美地使用如下输出:

d97b,135x32,0,0[135x16,0,0{87x16,0,0,0,47x16,88,0,1},135x15,0,17{87x15,0,17,2,47x15,88,17,3}]

但是,我似乎无法将其作为别名运行。如果我添加该行:

alias layout="tmux list-windows | awk '{print $7}' |  sed 's/\]$//' | pbcopy"

.zshrc当我运行命令时到我的文件layout没有按预期工作。相反,它会输出带有替换会话名称tmux list-windows的单词的完整命令:layout

0: layout* (4 panes) [135x32] [layout d97b,135x32,0,0[135x16,0,0{87x16,0,0,0,47x16,88,0,1},135x15,0,17{87x15,0,17,2,47x15,88,17,3}]] @0 (active)

我究竟做错了什么?

谢谢。

4

3 回答 3

6

alex_i是正确的,如果你逃避$7一切正常。

alias layout="tmux list-windows | awk '{print \$7}' | sed 's/\]$//' | pbcopy"

注意 $7 之前的反斜杠。

于 2014-02-07T11:48:08.247 回答
4

不要使用别名;使用一个功能:

layout () {
    tmux list-windows | awk '{print $7}' | sed 's/\]$//' | pbcopy
}

那你就不用担心引用了。

于 2014-02-12T21:19:35.003 回答
4

.zshrc 加载期间是否解释了您的“$7”?难道不是问题吗?

于 2014-02-07T11:36:58.927 回答