මෙය ලියා ඇති බව මම දැක ඇත්තෙමි;
$ 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/…