szy*_*bia 6 bash scripting pipe
我把问题过于复杂化了,但是在 Bash 中的一行给出条件的情况下,有没有一种方法可以将一个命令通过管道传输到另一个命令中?
基本上我目前有这个
if [ "$check" -eq 1 ]; then
echo -n "foo" | xclip -selection clipboard
else
echo -n "foo"
fi
Run Code Online (Sandbox Code Playgroud)
我想知道 Bash 中是否有将其变成如下所示的内容:
echo -n "foo" && [ "$check" -eq 1 ] | xclip -selection clipboard
Run Code Online (Sandbox Code Playgroud)
如果 $check == 1,“foo”将通过管道传输到剪贴板,否则内容将输出到 stdout,并且管道永远不会激活,并且不会将任何内容写入剪贴板。我希望这是一句单行话,我只调用一次 echo 。
$ check=0
$ echo "foo" | { if (( check == 1 )); then cat -n; else cat -; fi; }
foo
$ check=1
$ echo "foo" | { if (( check == 1 )); then cat -n; else cat -; fi; }
1 foo
Run Code Online (Sandbox Code Playgroud)