প্রদত্ত
cmd='fun(){ echo "$@"; }; fun $(fun $(fun hi))'
শেলগুলি এটির জন্য 2 টি কাঁটাচামচ তৈরি করতে হবে
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
ksh
বীরত্বপূর্ণভাবে ছাড়া এটি একবার কাঁটাচামচ না করে তোলে:
dash 2
bash 2
zsh 2
ksh 0
কীভাবে তা করে?
সম্পাদনা:
এখানে ফেলে দেওয়া পাইপটি কীভাবে নীচে নেমে আসে তা এখানে:
cmd='fun(){ echo "$@"| echo "$@"; }; fun $(fun $(fun hi))'
আউটপুট:
dash 11
bash 10
zsh 5
ksh 3
ksh
ইনস্টল করেছেন? আমি যখন আপনার কোডটি চালান আমি যে 0
কোনও শেল ইনস্টল না করে পেয়ে যাই