මෙය ලියා ඇති බව මම දැක ඇත්තෙමි;
$ some-command >| /tmp/output.txt
සිරස් පයිප්ප සම්මත යළි-යොමුවීම් වලදී භාවිතා කරනුයේ එක් විධානයක ප්රතිදානය තවත් නලයකට “පයිප්ප” කිරීමෙනි, >|ඇත්ත වශයෙන්ම එය සම්පූර්ණයෙන්ම නිෂ් >less ලද?
මෙය ලියා ඇති බව මම දැක ඇත්තෙමි;
$ some-command >| /tmp/output.txt
සිරස් පයිප්ප සම්මත යළි-යොමුවීම් වලදී භාවිතා කරනුයේ එක් විධානයක ප්රතිදානය තවත් නලයකට “පයිප්ප” කිරීමෙනි, >|ඇත්ත වශයෙන්ම එය සම්පූර්ණයෙන්ම නිෂ් >less ලද?
Answers:
එය >නිෂ් less ල නොවේ - එය සරල යළි-යොමුවීමේ ක්රියාකරුගේ විශේෂිත ආකාරයකි (සහ, සමහර විට ව්යාකූල ලෙස, පයිප්ප සමඟ කිසිදු සම්බන්ධයක් නැත). bashසහ අනෙකුත් බොහෝ නූතන ෂෙල් වෙඩි සඳහා විකල්පයක් ඇත noclobber, එමඟින් දැනටමත් පවතින ගොනුවක් නැවත ලිවීම හෝ විනාශ කිරීම වළක්වාලීම වළක්වයි. උදාහරණයක් ලෙස, noclobberසත්ය නම් , සහ ගොනුව /tmp/output.txtදැනටමත් පවතී නම්, මෙය අසමත් විය යුතුය:
$ some-command > /tmp/output.txt
කෙසේ වෙතත්, ඔබට යළි-යොමුවීම් ක්රියාකරු noclobberසමඟ සැකසුම පැහැදිලිවම අභිබවා යා හැකිය >|- නැවත හරවා යැවීම noclobberසකසා තිබුණද, ක්රියා කරයි.
noclobberඔබගේ වර්තමාන පරිසරය තුළ සකසා ඇත්දැයි ඔබට සොයාගත හැකිය set -o.
Note තිහාසික සටහන සඳහා, "නොක්ලොබර්" විකල්පය සහ එහි බයිපාස් විශේෂාංග දෙකම csh(70 දශකයේ අග භාගයේ සිට ) පැමිණේ . kshඑය පිටපත් කරන ලදි (80 දශකයේ මුල්) නමුත් >|ඒ වෙනුවට භාවිතා කරන ලදි >!. POSIX විසින් kshවාක්ය ඛණ්ඩය නියම කර ඇත (එබැවින් සමහර පද්ධතිවල sh ලෙස භාවිතා කරන බෑෂ්, අළු අළු ව්යුත්පන්නයන් ඇතුළු සියලුම POSIX කවච එයට සහාය දක්වයි). Zsh සින්ටැක්ස් දෙකටම සහය දක්වයි. මම හිතන්නේ නැහැ එය කිසිම බෝර්න් ෂෙල් ප්රභේදයකට එකතු කර ඇති නමුත් මම වැරදියි.
shසතුව ඇත noclobber.
>|: stackoverflow.com/questions/818255/in-the-bash-shell-what-is-21/…