কিছু বোর্ন মত শেল, read
builtin ফাইল থেকে পুরো লাইন পড়তে পারে না /proc
(কমান্ড নিচে চালানো হবে zsh
, প্রতিস্থাপন $=shell
সঙ্গে $shell
অন্যান্য শাঁস সহ):
$ for shell in bash dash ksh mksh yash zsh schily-sh heirloom-sh "busybox sh"; do
printf '[%s]\n' "$shell"
$=shell -c 'IFS= read x </proc/sys/fs/file-max; echo "$x"'
done
[bash]
602160
[dash]
6
[ksh]
602160
[mksh]
6
[yash]
6
[zsh]
6
[schily-sh]
602160
[heirloom-sh]
602160
[busybox sh]
6
read
স্ট্যান্ডার্ডটির জন্য স্ট্যান্ডার্ড ইনপুটটিকে একটি পাঠ্য ফাইল হওয়া দরকার , সেই প্রয়োজনীয়তাটি কি বিচিত্র আচরণের কারণ হয়?
পাঠ্য ফাইলটির পসিক্স সংজ্ঞাটি পড়ুন , আমি কিছু যাচাইকরণ করছি:
$ od -t a </proc/sys/fs/file-max
0000000 6 0 2 1 6 0 nl
0000007
$ find /proc/sys/fs -type f -name 'file-max'
/proc/sys/fs/file-max
এর NUL
সামগ্রীতে কোনও চরিত্র নেই /proc/sys/fs/file-max
এবং find
এটি নিয়মিত ফাইল হিসাবে রিপোর্ট করেছেন (এটি কি কোনও বাগ ইন find
?)।
আমার ধারণা শেলটি হুডের নীচে কিছু করেছিল, যেমন file
:
$ file /proc/sys/fs/file-max
/proc/sys/fs/file-max: empty
strace
ভিত্তিক ব্যাখ্যাটি বোঝা অনেক সহজ!