나는 다음 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
}
네가 없으면 안 된다고 말하는 이유는 그게 정말 중요하기 때문이야일부명령이 거기에 있습니다. 그렇지 않으면 논리가 깨질 것입니다(실제로 논리가 약간 이상하긴 하지만).