私は次のbashスクリプトを見つけましたネットワーク与えられた要素行の累乗をセットします。
p() { [ $# -eq 0 ] && echo || (shift; p "$@") |
while read r ; do echo -e "$1 $r\n$r"; done }
最初の後にパラメータは&&
ありませんecho
。
これをテストするコードは次のとおりです。
p $(echo -e "1\n2\n3")
答え1
書式設定に使用されます。
$ p() { [ $# -eq 0 ] && echo || (shift; p "$@") |
> while read r ; do echo -e "$1 $r\n$r"; done }
$ p $(echo -e "1\n2\n3")
1 2 3
2 3
1 3
3
1 2
2
1
$ p
$
p
単一のプロンプトと次のプロンプトの間に空白行があります。これはecho
。
これはもっと読みやすいです。
p() {
if [ $# -eq 0 ]; then
echo
else
(shift; p "$@") | while read r;
do echo -e "$1 $r\n$r";
done
fi
}
あなたがなければならないと言う理由は、それが本当に重要だからです。一部コマンドはそこにあります。それ以外の場合、論理は壊れます(実際には論理が少し奇妙ですが)。