Diberikan
cmd='fun(){ echo "$@"; }; fun $(fun $(fun hi))'
kerang cenderung perlu membuat 2 garpu untuk mewujudkannya
strace-f(){ strace -f "$@" 2>&1; };
for sh in dash bash zsh ksh; do
printf "$sh\t" ; strace-f $sh -c "$cmd" |grep -e clone -e fork -c;
done
kecuali ksh
heroik membuatnya tanpa bercabang sekali:
dash 2
bash 2
zsh 2
ksh 0
Bagaimana cara melakukannya?
Edit:
Begini caranya turun dengan pipa dilemparkan ke dalam:
cmd='fun(){ echo "$@"| echo "$@"; }; fun $(fun $(fun hi))'
Keluaran:
dash 11
bash 10
zsh 5
ksh 3
ksh
menginstal? Ketika saya menjalankan kode Anda, saya mendapatkan 0
shell apa pun yang tidak saya instal