下面是一个linux命令(您可能需要cowsay应用程序。
cowsay 'moo'下面是另一个命令:
cowsay 'moo' | cowsay -n结果非常有趣:
______________________________
/ _____ \
| < moo > |
| ----- |
| \ ^__^ |
| \ (oo)\_______ |
| (__)\ )\/\ |
| ||----w | |
\ || || /
------------------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||现在,当然,将这个管道命令重复N次是非常有趣的。它看起来有点像这样:
cowsay 'moo' | cowsay -n | cowsay -n | cowsay -n | cowsay -n | cowsay -n | cowsay -n | cowsay -n | cowsay -n | cowsay -n | cowsay -n | cowsay -n

但我在想,一定有更好的方法来实现这一点。比方说,我想要500头母牛互相说话,或者1000头,或者100万头。当然,我不需要把手指放在粘贴按钮上?
这里有一个问题;在bash (命令或脚本)中,有没有一种方法可以递归地将命令的输出传递给自己给定的次数?
发布于 2017-04-07 16:52:52
cowsayN() {
local n=$1
shift
if ((n>1)); then
cowsay -n | cowsayN $((n-1))
else
cowsay -n
fi
}
echo 'moo' | cowsayN 500发布于 2017-04-07 15:56:04
我暂时不能测试它:
output=$(cowsay 'moo')
for ((i=0;i<50;i+=1)); do output=$(cowsay "$output"); done
echo "$output"修改了添加<<<以将值作为输入传递的情况
output=$(cowsay -n <<<'moo')
for ((i=0;i<50;i+=1)); do output=$(cowsay -n <<<"$output"); done
echo "$output"https://stackoverflow.com/questions/43272602
复制相似问题