在单行 bash 别名中修剪尾随换行符

在单行 bash 别名中修剪尾随换行符

我正在尝试在 Mac OS X 终端上编写一个简单的别名来复制当前工作目录。我有这个:

alias cpwd="echo \`pwd\` | pbcopy; echo \"Copied \`pwd\`\""

然后我只需运行以下命令来复制它:

$ cpwd

问题是echo pwd末尾包含换行符。因此,当我粘贴它时,它会立即执行(如果粘贴在终端中)。

我只想删除试行换行符,但我在互联网上找到的似乎都对我有用。看过涉及 、 和 的各种解决方案sedawkcut我不太明白。似乎很容易做到。

答案1

我相信这应该可行:

alias cwd="echo -n `pwd` | pbcopy; echo \"Copied `pwd`\""

上面写着-n“没有换行符”。或者你也可以直接让输出通过tr并删除换行符,如下所示:

alias cwd="echo `pwd` | tr -d "\n" | pbcopy; echo \"Copied `pwd`\""

我不确定您是否要从第一个回显或两者中删除尾随的新行字符 - 但我想您可以弄清楚它是否适用于第一个;)

答案2

我不确定 Mac OS X echo 命令,但如果提供了 -n 参数,echo 将不会输出尾随的换行符:

-n 不输出尾随的换行符

问候...

相关内容