ΠΠ°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΊΡΠΈΠΏΡΠ°: Π£ΡΠΈΠΌΡΡ ΠΏΠΈΡΠ°ΡΡ userscript’Ρ / Habr β 10 ΡΡΠ°ΠΏΠΎΠ² + ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΏΠΎ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡΠΌ
if(rtbW>=960){var rtbBlockID="R-A-744041-3";} else{var rtbBlockID="R-A-744041-5";}
window.yaContextCb.push(()=>{Ya.Context.AdvManager.render({renderTo:"yandex_rtb_7",blockId:rtbBlockID,pageNumber:7,onError:(data)=>{var g=document.createElement("ins");g.className="adsbygoogle";g.style.display="inline";if(rtbW>=960){g.style.width="580px";g.style.height="400px";g.setAttribute("data-ad-slot","9935184599");}else{g.style.width="300px";g.style.height="600px";g.setAttribute("data-ad-slot","9935184599");} g.setAttribute("data-ad-client","ca-pub-1812626643144578");g.setAttribute("data-alternate-ad-url",stroke2);document.getElementById("yandex_rtb_7").appendChild(g);(adsbygoogle=window.adsbygoogle||[]).push({});}})});
window.addEventListener("load",()=>{
var ins=document.getElementById("yandex_rtb_7");if(ins.clientHeightΒ =="0"){ins.innerHTML=stroke3;}},true);
ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°ΡΡ JavaScript βΒ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° Π½Π° Skillbox
if(rtbW>=960){var rtbBlockID="R-A-744041-3";} else{var rtbBlockID="R-A-744041-5";}
window.yaContextCb.push(()=>{Ya.Context.AdvManager.render({renderTo:"yandex_rtb_6",blockId:rtbBlockID,pageNumber:6,onError:(data)=>{var g=document.createElement("ins");g.className="adsbygoogle";g.style.display="inline";if(rtbW>=960){g.style.width="580px";g.style.height="400px";g.setAttribute("data-ad-slot","9935184599");}else{g.style.width="300px";g.style.height="600px";g.setAttribute("data-ad-slot","9935184599");} g.setAttribute("data-ad-client","ca-pub-1812626643144578");g.setAttribute("data-alternate-ad-url",stroke2);document.getElementById("yandex_rtb_6").appendChild(g);(adsbygoogle=window.adsbygoogle||[]).push({});}})});
window.addEventListener("load",()=>{
var ins=document.getElementById("yandex_rtb_6");if(ins.clientHeightΒ =="0"){ins.innerHTML=stroke3;}},true);
ΠΡΠ»ΠΈΒ Π±ΡΒ Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ° ΠΏΠΈΡΠ°Π»ΠΈ ΠΠΈΠ±Π»ΠΈΡ, ΠΎΠ½Π° Π½Π°ΡΠΈΠ½Π°Π»Π°ΡΡΒ Π±ΡΒ ΡΠ°ΠΊ:
Π‘Π½Π°ΡΠ°Π»Π°Β Π±ΡΠ»Π° ΠΏΠΎΡΡΠ°. ΠΒ ΡΠ²ΠΈΠ΄Π΅Π»ΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΡ, ΡΡΠΎ ΡΡΠΎ Ρ ΠΎΡΠΎΡΠΎ. ΠΒ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΎΠ½ΠΈ WWW ΡΒ Π³ΠΈΠΏΠ΅ΡΡΡΡΠ»ΠΊΠ°ΠΌΠΈ. ΠΒ ΡΠ²ΠΈΠ΄Π΅Π»ΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΡ, ΡΡΠΎ ΡΡΠΎ ΡΠΎΠΆΠ΅ Ρ ΠΎΡΠΎΡΠΎ. ΠΒ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΎΠ½ΠΈ ΡΠΎΠ³Π΄Π° ΡΠ·ΡΠΊ JavaScript Π΄Π»Ρ ΠΎΠΆΠΈΠ²Π»Π΅Π½ΠΈΡ ΡΡΡΠ°Π½ΠΈΡΠ΅ΠΊ.
ΠΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΠ»ΠΎ Π²Β ΡΠ΅Π°Π»ΡΠ½ΠΎΡΡΠΈ. JavaScript ΠΏΡΠΈΠ΄ΡΠΌΠ°Π»ΠΈ, ΡΡΠΎΠ±Ρ Β«ΠΎΠΆΠΈΠ²ΠΈΡΡΒ» HTML. Π‘ΠΊΡΠΈΠΏΡΡ JavaScript ΠΏΠΈΡΡΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π²Β ΡΠ΅ΠΊΡΡ HTML ΠΈΠ»ΠΈ Ρ ΡΠ°Π½ΡΡΡΡ Π²Β ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠ°ΠΉΠ»Π°Ρ , ΠΊΠ°ΠΊ ΠΈΒ ΡΡΠΈΠ»ΠΈ CSS. ΠΠ½ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡΡ Π²Β Π±ΡΠ°ΡΠ·Π΅Ρ.
ΠΠ°ΠΆΠ΅ ΡΠ°ΠΌ ΡΠ·ΡΠΊ Π²Β ΠΏΠ΅ΡΠ²ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π°Π·ΡΠ²Π°Π»ΡΡ LiveScript. ΠΠΎΡΠΎΠΌ Π΅Π³ΠΎ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π»ΠΈ Π²Β JavaScript, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π»ΠΈ ΠΊΠ°ΠΊ-ΡΠΎ ΡΠ²ΡΠ·Π°ΡΡ ΡΒ ΡΠ·ΡΠΊΠΎΠΌ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ Java. ΠΠΎΒ ΡΠ΅ΠΉΡΠ°Ρ ΡΒ Π½ΠΈΡ Π½Π΅Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½ΠΈΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ΅Π³ΠΎ, Π°Β JavaScriptΒ β ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΒ ΡΠ²ΠΎΠ΅ΠΉ ΡΠ΅ΡΠΊΠΎΠΉ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠ΅ΠΉ ECMAScript.
Π€ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ JavaScript ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΡΠ³ΠΎΠ²ΠΎΠΉ ΠΌΠ°ΡΠΊΠΎΠΉ Oracle, Π°Β ΡΡΠΎΡ ΡΠ·ΡΠΊΒ β Β«ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅Β» ECMAScript, Π½Π°ΡΡΠ΄Ρ ΡΒ JScript ΠΎΡΒ Microsoft ΠΈΒ ActionScript, Π½ΠΎΒ ΡΡΠΎ ΡΠΊΠΎΡΠ΅Π΅ Π·Π°ΠΌΠΎΡΠΎΡΠΊΠΈ Π²Π»Π°Π΄Π΅Π»ΡΡΠ΅Π² ΡΠΎΡΠ³ΠΎΠ²ΡΡ ΠΌΠ°ΡΠΎΠΊ. ΠΠ»Π°Π²Π½ΠΎΠ΅, ΡΡΠΎ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΠΉ ECMAScript Π½ΠΈΠΊΠΎΠΌΡ Π½Π΅Β ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ.
Π‘ΠΎΒ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ ΡΡΠ΅ΡΠ° Π²Π»ΠΈΡΠ½ΠΈΡ JavaScript Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°ΡΡΠΈΡΠΈΠ»Π°ΡΡ. ΠΠ³ΠΎ Π½Π°ΡΠ°Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅Β ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠΊΡΠΈΠΏΡΠΎΠ² Π½Π°Β ΡΡΡΠ°Π½ΠΈΡΠ΅ HTML, Π½ΠΎΒ ΠΈΒ Π΄Π»Ρ ΡΠ΅ΡΡΠ΅Π·Π½ΡΡ Π±ΠΎΠ»ΡΡΠΈΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΒ ΡΠ΅Π»ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π²Β Π±ΡΠ°ΡΠ·Π΅ΡΠ΅. ΠΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΡΡΠΎΠ±Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Β«ΡΠΏΠ°ΠΊΠΎΠ²Π°ΡΡΒ» ΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΒ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΈΡ Β ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΎΡΒ Π±ΡΠ°ΡΠ·Π΅ΡΠ°. ΠΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΠΈΒ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ Π½Π°Β ΠΎΠ±ΡΡΠ°ΡΡΠΈΡ ΠΊΡΡΡΠ°Ρ Β«Java-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΒ» ΠΈΒ Β«ΠΠ΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΒ».
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ JavaScript Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π²Β Π»ΡΠ±ΠΎΠΉ ΡΡΠ΅Π΄Π΅, Π³Π΄Π΅ Π΅ΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ.
ΠΠ°Ρ ΠΏΠΎΠΊΠ° ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π±ΡΠ°ΡΠ·Π΅ΡΡ ΠΈΒ HTML-ΡΡΡΠ°Π½ΠΈΡΠΊΠΈ.
ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ JavaScript? ΠΠ°ΠΏΠΈΡΠ°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠ½ΡΠΉ ΡΠΊΡΠΈΠΏΡ Π½Π΅Β ΡΠ»ΠΎΠΆΠ½Π΅Π΅, ΡΠ΅ΠΌ ΠΏΡΠΎΡΡΡΡ
if(rtbW>=960){var rtbBlockID="R-A-744041-3";} else{var rtbBlockID="R-A-744041-5";}
window.yaContextCb.push(()=>{Ya.Context.AdvManager.render({renderTo:"yandex_rtb_5",blockId:rtbBlockID,pageNumber:5,onError:(data)=>{var g=document.createElement("ins");g.className="adsbygoogle";g.style.display="inline";if(rtbW>=960){g.style.width="580px";g.style.height="400px";g.setAttribute("data-ad-slot","9935184599");}else{g.style.width="300px";g.style.height="600px";g.setAttribute("data-ad-slot","9935184599");} g.setAttribute("data-ad-client","ca-pub-1812626643144578");g.setAttribute("data-alternate-ad-url",stroke2);document.getElementById("yandex_rtb_5").appendChild(g);(adsbygoogle=window.adsbygoogle||[]).push({});}})});
window.addEventListener("load",()=>{
var ins=document.getElementById("yandex_rtb_5");if(ins.clientHeightΒ =="0"){ins.innerHTML=stroke3;}},true);HTML-ΡΡΡΠ°Π½ΠΈΡΠΊΡ, Π²Π΅Π΄Ρ ΡΠΊΡΠΈΠΏΡΡ JavaScript ΠΏΠΈΡΡΡΡΡ ΠΎΠ±ΡΡΠ½ΡΠΌ ΡΠ΅ΠΊΡΡΠΎΠΌ, ΡΠΎΒ Π΅ΡΡΡ ΠΈΡ Β ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎ Π²Β ΡΠΎΠΌΒ ΠΆΠ΅Β Β«ΠΠ»ΠΎΠΊΠ½ΠΎΡΠ΅Β», ΡΠΎΡ ΡΠ°Π½ΡΡ ΠΏΠΎΡΠΎΠΌ Π²Β ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠ°ΠΉΠ»Π°Ρ ΠΈΠ»ΠΈ Π²ΡΡΠ°Π²Π»ΡΡ Π²Β ΡΠ΅Π»ΠΎ HTML-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°. Π‘Π°ΠΌΡΠ΅ ΠΏΡΠΎΡΡΡΠ΅ Π²Π΅ΡΠΈ Π½Π°Β JavaScript Π΄Π΅Π»Π°ΡΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ.
ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΊΡΠΈΠΏΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² Windows. ΠΡΠΎΡ ΡΠΊΡΠΈΠΏΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΡΠΌΠΎ Π²Β Β«ΠΠ»ΠΎΠΊΠ½ΠΎΡΠ΅Β» ΠΈΒ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π±Π΅Π· Π±ΡΠ°ΡΠ·Π΅ΡΠ°.
WScript.echo («ΠΡΠΈΠ²Π΅Ρ, Skillbox!«)
ΠΠΈΡΠ΅ΠΌ ΡΡΠΎΡ ΡΠ΅ΠΊΡΡ Π²Β Β«ΠΠ»ΠΎΠΊΠ½ΠΎΡΠ΅Β», Π·Π°ΡΠ΅ΠΌ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ ΡΠ°ΠΉΠ» ΠΏΠΎΠ΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ skillbox.js ΠΈΒ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ Π²Β Β«ΠΡΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠ΅Β» Windows.
ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΉ ΡΠΊΡΠΈΠΏΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΡΠΌΠΎ Π²Β ΠΊΠΎΠ΄Π΅ ΡΡΡΠ°Π½ΠΈΡΡ HTML ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅Π³Π°ΠΌΠΈ <script> ΠΈ </script>.
ΠΠ΅ΡΠΎΠ΄ alert() ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΠΎΠΊΠΎΡΠΊΠΎ ΡΒ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ Β«OKΒ». ΠΒ ΠΎΠΊΠ½Π΅Β Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΊΠ°Π·Π°Π½ΠΎ Π²Β ΡΠΊΠΎΠ±ΠΊΠ°Ρ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Β«ΠΡΠΈΠ²Π΅Ρ, Skillbox!Β». Π’ΠΎΒ Π΅ΡΡΡ Π²Β Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π±ΡΠ°ΡΠ·Π΅Ρ Π΄Π΅Π»Π°Π΅Ρ ΡΠΎΠ²Π½ΠΎ ΡΠΎΒ ΠΆΠ΅Β ΡΠ°ΠΌΠΎΠ΅, ΡΡΠΎ ΠΏΠ΅ΡΠ΅Π΄ ΡΡΠΈΠΌ Π΄Π΅Π»Π°Π» ΡΠ΅ΡΠ²Π΅Ρ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² Windows.
ΠΡΠΈ ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ Π²Β Β«ΠΠ»ΠΎΠΊΠ½ΠΎΡΠ΅Β», ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π²Β ΡΠ°ΠΉΠ»Π°Ρ ΡΒ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ HTML. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, skillbox.htm.
<html>
Β Β <script>
Β Β Β alert(«ΠΡΠΈΠ²Π΅Ρ, Skillbox«)
Β Β </script>
</html>
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
if(rtbW>=960){var rtbBlockID="R-A-744041-3";} else{var rtbBlockID="R-A-744041-5";}
window.yaContextCb.push(()=>{Ya.Context.AdvManager.render({renderTo:"yandex_rtb_4",blockId:rtbBlockID,pageNumber:4,onError:(data)=>{var g=document.createElement("ins");g.className="adsbygoogle";g.style.display="inline";if(rtbW>=960){g.style.width="580px";g.style.height="400px";g.setAttribute("data-ad-slot","9935184599");}else{g.style.width="300px";g.style.height="600px";g.setAttribute("data-ad-slot","9935184599");} g.setAttribute("data-ad-client","ca-pub-1812626643144578");g.setAttribute("data-alternate-ad-url",stroke2);document.getElementById("yandex_rtb_4").appendChild(g);(adsbygoogle=window.adsbygoogle||[]).push({});}})});
window.addEventListener("load",()=>{
var ins=document.getElementById("yandex_rtb_4");if(ins.clientHeightΒ =="0"){ins.innerHTML=stroke3;}},true);
ΠΒ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° alert() ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π½Π΅Β ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΡΠ΅ΠΊΡΡ, Π½ΠΎΒ ΠΈΒ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄ΡΡΠ³ΠΈΡ Π΄Π°Π½Π½ΡΡ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, alert(x), Π³Π΄Π΅ x Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ.
ΠΠ΅ΡΠΎΠ΄ confirm() Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΠ°ΠΊΠΎΠ΅Β ΠΆΠ΅Β ΠΎΠΊΠ½ΠΎ ΡΒ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ, Π½ΠΎΒ ΡΠΆΠ΅ ΡΒ Π΄Π²ΡΠΌΡ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈΒ β Β«ΠΠΒ» ΠΈΒ Β«ΠΡΠΌΠ΅Π½Π°Β». ΠΒ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡΒ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ ΡΠ΅Π»ΠΊΠ½Π΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΌΠ΅ΡΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΒ Π»ΠΈΠ±ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ true,Β Π»ΠΈΠ±ΠΎ false. Π‘Π΅ΡΠ²Π΅Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΒ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΒ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, Π²Β Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡΒ ΠΎΡΠ²Π΅ΡΠ°.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΠ°ΠΊΠΎΠΉΒ ΠΆΠ΅, ΡΠΎΠ»ΡΠΊΠΎ Π·Π΄Π΅ΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ Π²ΡΠ±ΠΎΡ, ΡΠ°ΠΊ ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π·Π°Π΄Π°ΡΡ Π²ΠΎΠΏΡΠΎΡ.
<html>
Β Β <script>
Β Β Β confirm(«ΠΡΠΈΠ²Π΅Ρ, Skillbox«)
Β Β </script>
</html>
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
ΠΠ΅ΡΠΎΠ΄ prompt() Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΡΒ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΒ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΌ ΠΏΠΎΠ»Π΅ΠΌ, ΠΊΡΠ΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²Π²ΠΎΠ΄ΠΈΡ Π΄Π°Π½Π½ΡΠ΅. ΠΠ΄Π΅ΡΡ ΡΠΎΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Ρ Π΄Π²Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ Β«ΠΠΒ» ΠΈΒ Β«ΠΡΠΌΠ΅Π½Π°Β». ΠΠΎΒ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΠ΅ΡΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½Π°Β ΡΠ΅ΡΠ²Π΅Ρ Π²Π²Π΅Π΄Π΅Π½Π½ΡΠΉ ΡΠ΅ΠΊΡΡ, Π°Β ΠΏΠΎΒ Π½Π°ΠΆΠ°ΡΠΈΡ Π²ΡΠΎΡΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ false.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π·Π΄Π΅ΡΡ ΡΠ°ΠΊΠΎΠΉ:
prompt (ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅_ΠΏΠΎΠ»Ρ_Π²Π²ΠΎΠ΄Π°_Π΄Π°Π½Π½ΡΡ )
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ Π²Π²ΠΎΠ΄Π° Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ. Π’ΡΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΏΠΈΡΠ°ΡΡ ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π²Π²Π΅Π΄Π΅Π½ Π²Β ΠΏΠΎΠ»Π΅ Π΄Π»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΠΎΠ΄:
<html>
Β Β <script>
Β Β Β prompt(«ΠΠ΅ΡΠ΅Π΄Π°ΠΉ ΠΏΡΠΈΠ²Π΅Ρ Skillbox«, «ΠΡΠΈΠ²Π΅Ρ«)
Β Β </script>
</html>
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
if(rtbW>=960){var rtbBlockID="R-A-744041-3";} else{var rtbBlockID="R-A-744041-5";}
window.yaContextCb.push(()=>{Ya.Context.AdvManager.render({renderTo:"yandex_rtb_3",blockId:rtbBlockID,pageNumber:3,onError:(data)=>{var g=document.createElement("ins");g.className="adsbygoogle";g.style.display="inline";if(rtbW>=960){g.style.width="580px";g.style.height="400px";g.setAttribute("data-ad-slot","9935184599");}else{g.style.width="300px";g.style.height="600px";g.setAttribute("data-ad-slot","9935184599");} g.setAttribute("data-ad-client","ca-pub-1812626643144578");g.setAttribute("data-alternate-ad-url",stroke2);document.getElementById("yandex_rtb_3").appendChild(g);(adsbygoogle=window.adsbygoogle||[]).push({});}})});
window.addEventListener("load",()=>{
var ins=document.getElementById("yandex_rtb_3");if(ins.clientHeightΒ =="0"){ins.innerHTML=stroke3;}},true);
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ JavaScript Π²ΡΡ ΠΎΠ΄ΡΡ Π΄Π°Π»Π΅ΠΊΠΎ Π·Π°Β ΡΠ°ΠΌΠΊΠΈ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π° Π΄Π°Π½Π½ΡΡ ΡΠ΅ΡΠ΅Π· ΡΠΎΡΠΌΡ. ΠΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΌΡΒ ΠΏΡΠΈΠ²Π΅Π»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π²Β ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ°ΠΌΡΡ ΠΏΡΠΎΡΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ². ΠΡΠΎΠΌΠ΅ ΡΡΠΎΠ³ΠΎ, JavaScript ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ Π½Π°Β Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π°Β Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ ΠΌΡΡΠΊΠΎΠΉ ΠΈΠ»ΠΈ Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΊΠ»Π°Π²ΠΈΡ. JavaScript ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ (Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ AJAX), ΠΊΠΎΠ³Π΄Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π½Π°Β ΡΡΡΠ°Π½ΠΈΡΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ Π±Π΅Π· Π΅Π΅Β ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠΈ. ΠΒ ΡΡΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ Π½Π°Β ΡΠ΅ΡΠ²Π΅Ρ ΠΈΒ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ ΠΎΡΡΡΠ΄Π° Π²Β ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, JavaScript ΡΠΏΠΎΡΠΎΠ±Π΅Π½ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΒ HTML-ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ Π½Π°Β ΡΡΡΠ°Π½ΠΈΡΠ΅ (ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈΒ ΠΏΡΡΡΠ°ΡΡ ΡΠ΅Π³ΠΈ ΠΈΒ Ρ.Π΄.) ΠΈΒ Π΄Π΅Π»Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅.
ΠΠΎΒ Π²ΡΠ΅Ρ
ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ
Π±ΡΠ°ΡΠ·Π΅ΡΠ°Ρ
Π΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½Π°Ρ ΠΊΠΎΠ½ΡΠΎΠ»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°. ΠΠ½Π° ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΊΠΎΠ΄ ΡΠΊΡΠΈΠΏΡΠΎΠ² Π½Π°Β ΡΡΡΠ°Π½ΠΈΡΠ΅, Π°Β ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π΄ΡΡΠ³ΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ. ΠΒ
ΠΠΎΠ½ΡΠΎΠ»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π²Β Chrome.
ΠΒ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ Π΄Π»Ρ ΡΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ IDE (IntegratedΒ Development Environment), ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. IDEΒ β ΡΡΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΡΒ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½ ΡΒ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΠΈΒ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅.
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ·Β Π»Π΅Π³ΠΊΠΈΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠΎΠ²:
ΠΒ Π±ΡΠ΄ΡΡΠ΅ΠΌ Π΅ΡΡΡ ΡΠΌΡΡΠ» ΠΏΡΠΈΡΠΌΠΎΡΡΠ΅ΡΡΡΡ ΠΊΒ IDE:
ΠΠ½ΡΡΡΡΠΊΡΠΎΡΡ Π½Π°Β ΠΊΡΡΡΠ΅ Β«JavaScript ΡΒ Π½ΡΠ»ΡΒ» ΠΏΠΎΡΠΎΠ²Π΅ΡΡΡΡ Π»ΡΡΡΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΈΒ ΠΏΠΎΠΌΠΎΠ³ΡΡ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ ΡΒ Π»ΡΠ±ΡΠΌΠΈ Π²ΠΎΠΏΡΠΎΡΠ°ΠΌΠΈ. ΠΡΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉΒ 4-ΠΌΠ΅ΡΡΡΠ½ΡΠΉ ΠΊΡΡΡ Π΄Π»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ Ρ ΠΎΡΠ΅Ρ Π½Π°ΡΡΠΈΡΡΡΡ ΠΎΡΠ½ΠΎΠ²Π°ΠΌ ΡΠ·ΡΠΊΠ° ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² ΡΒ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΡΠΌ Π½Π°ΡΡΠ°Π²Π½ΠΈΠΊΠΎΠΌ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΡΠΎΠ½ΡΠ΅Π½Π΄ Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ Π²Π΅Π±-ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈΒ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ ΠΊΠ΅ΠΉΡ ΠΊΒ ΡΠ΅Π±Π΅ Π²Β ΠΏΠΎΡΡΡΠΎΠ»ΠΈΠΎ.
if(rtbW>=960){var rtbBlockID="R-A-744041-3";} else{var rtbBlockID="R-A-744041-5";}
window.yaContextCb.push(()=>{Ya.Context.AdvManager.render({renderTo:"yandex_rtb_2",blockId:rtbBlockID,pageNumber:2,onError:(data)=>{var g=document.createElement("ins");g.className="adsbygoogle";g.style.display="inline";if(rtbW>=960){g.style.width="580px";g.style.height="400px";g.setAttribute("data-ad-slot","9935184599");}else{g.style.width="300px";g.style.height="600px";g.setAttribute("data-ad-slot","9935184599");} g.setAttribute("data-ad-client","ca-pub-1812626643144578");g.setAttribute("data-alternate-ad-url",stroke2);document.getElementById("yandex_rtb_2").appendChild(g);(adsbygoogle=window.adsbygoogle||[]).push({});}})});
window.addEventListener("load",()=>{
var ins=document.getElementById("yandex_rtb_2");if(ins.clientHeightΒ =="0"){ins.innerHTML=stroke3;}},true);
ΠΡΡΡ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ΡΠ°ΠΌ-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΈΒ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°ΠΌ, ΠΊΡΠΎ ΡΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌ ΠΈΒ ΡΠΌΠ΅Π΅Ρ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ Π½Π°Β HTML ΠΈΒ CSS, Π½ΠΎΒ Π½Π΅Β Π½Π°ΠΌΠ΅ΡΠ΅Π½ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ Π²Β ΠΈΠ·ΡΡΠ΅Π½ΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»ΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Β«Π½Π° ΠΏΠ°Π»ΡΡΠ°Ρ Β» ΠΎΠ±ΡΡΡΠ½ΡΡ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° JavaScript, Π½Π°ΡΡΠ°Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΒ ΠΏΠΎΠΌΠΎΠ³ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π΅Π±-ΠΏΡΠΎΠ΅ΠΊΡ Π½Π°Β JavaScript.
ΠΡΡΡ Β«JavaScript ΡΒ Π½ΡΠ»ΡΒ»
ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉΒ 4-Ρ Β ΠΌΠ΅ΡΡΡΠ½ΡΠΉ ΠΊΡΡΡ Π΄Π»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ Ρ ΠΎΡΠ΅Ρ Π½Π°ΡΡΠΈΡΡΡΡ ΠΎΡΠ½ΠΎΠ²Π°ΠΌ ΡΠ·ΡΠΊΠ° ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² ΡΒ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΡΠΌ Π½Π°ΡΡΠ°Π²Π½ΠΈΠΊΠΎΠΌ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΡΠΎΠ½ΡΡΠ½Π΄ Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ Π²Π΅Π±-ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈΒ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ ΠΊΠ΅ΠΉΡ ΠΊΒ ΡΠ΅Π±Π΅ Π²Β ΠΏΠΎΡΡΡΠΎΠ»ΠΈΠΎ.
- ΠΠΈΠ²Π°Ρ ΠΎΠ±ΡΠ°ΡΠ½Π°Ρ ΡΠ²ΡΠ·Ρ ΡΒ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»ΡΠΌΠΈ
- ΠΠ΅ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊΒ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π°ΠΌ ΠΊΡΡΡΠ°
- Π‘ΡΠ°ΠΆΠΈΡΠΎΠ²ΠΊΠ° Π²Β ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡ -ΠΏΠ°ΡΡΠ½ΡΡΠ°Ρ
- ΠΠΈΠΏΠ»ΠΎΠΌΠ½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ ΠΎΡΒ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠ°
- ΠΠ°ΡΠ°Π½ΡΠΈΡ ΡΡΡΠ΄ΠΎΡΡΡΡΠΎΠΉΡΡΠ²Π° Π²Β ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ-ΠΏΠ°ΡΡΠ½ΡΡΡ Π΄Π»Ρ Π²ΡΠΏΡΡΠΊΠ½ΠΈΠΊΠΎΠ², Π·Π°ΡΠΈΡΠΈΠ²ΡΠΈΡ Π΄ΠΈΠΏΠ»ΠΎΠΌΠ½ΡΠ΅ ΡΠ°Π±ΠΎΡΡ
ΠΡΠΈΠ΅ΠΌΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² Π² Bash / Habr
ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ°ΠΌ Linux ΠΏΠΈΡΠ°ΡΡ ΡΠΊΡΠΈΠΏΡΡ Π½Π° Bash ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ. ΠΠΈΠΆΠ΅ Ρ ΠΏΡΠΈΠ²ΠΎΠΆΡ ΡΠΎΠ²Π΅ΡΡ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΊΠΎΡΠΈΡΡ ΡΡΡ ΡΠ°Π±ΠΎΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ²ΡΡΠΈΡΡ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΡ ΡΠΊΡΠΈΠΏΡΠΎΠ².
Π‘ΠΎΠ²Π΅Ρ 1
ΠΠ΅ ΠΏΠΈΡΠΈΡΠ΅ ΡΠΊΡΠΈΠΏΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΡΠΏΡΠ°ΡΠΈΠ²Π°Ρ. Π’Π°ΠΊΠΈΠ΅ ΡΠΊΡΠΈΠΏΡΡ Π½ΡΠΆΠ½Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ΅Π΄ΠΊΠΎ. Π Π²ΠΎΡ Π²ΡΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ Β«Π΄ΠΎΠ±ΡΠ°Β» Π΄Π»Ρ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ, Π·Π°ΠΏΡΡΠΊΠ° ΡΠ΅Π³ΠΎ-Π»ΠΈΠ±ΠΎ, Ρ ΠΎΡΡ ΠΎΡΠ±Π°Π²Π»ΡΠΉ. Π Π΅ΡΠ»ΠΈ Π² Π»ΡΠ±ΠΈΠΌΠΎΠΌ Midnight Commander ΠΡ Π²Π΄ΡΡΠ³ Π½Π°ΠΆΠ°Π»ΠΈ Π½Π΅ Π½Π° ΡΠΎΡ ΡΠΊΡΠΈΠΏΡ, ΡΠΎ Ρ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΡΠΈ Π²ΡΠ΅ ΡΡΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ. ΠΡΠΎ ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»Π° Π΄ΠΎΡΠΎΠΆΠ½ΠΎΠ³ΠΎ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ β Β«Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ ΠΊΡΠΎΠ²ΡΡΒ».
Π‘ΠΎΠ²Π΅Ρ 2
ΠΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡ ΠΎΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ, Π² Π½Π°ΡΠ°Π»ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡΠ° Π½Π΅ΠΏΠ»ΠΎΡ ΠΎ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅:
read -n 1 -p "Π’Ρ ΡΠ²Π΅ΡΠ΅Π½, ΡΡΠΎ Ρ
ΠΎΡΠ΅ΡΡ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΡΠΎ (y/[a]): " AMSURE
[ "$AMSURE" = "y" ] || exit
echo "" 1>&2
ΠΠΎΠΌΠ°Π½Π΄Π° echo, ΠΊΡΡΠ°ΡΠΈ, Π·Π΄Π΅ΡΡ Π½ΡΠΆΠ½Π° ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ Ρ Π²Π°Ρ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° ΡΡΡΠΎΠΊΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π»ΡΠ±ΠΎΠΉ Π²ΡΠ²ΠΎΠ΄ ΠΏΠΎΠΉΠ΄Π΅Ρ Π² ΡΡΡ ΠΆΠ΅ ΡΡΡΠΎΠΊΡ.
Π‘ΠΎΠ²Π΅Ρ 3
ΠΡΠΎ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠΉ ΡΠΎΠ²Π΅Ρ ΠΈΠ· Π²ΡΠ΅Ρ . ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π½Π΅ ΠΏΠΈΡΠ°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅ β ΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΡΠΎΡΠΈΡΠ°Π² ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ°ΡΠ΅ΠΉ ΠΏΠΎ Bash, Ρ Π²ΡΠ½ΡΠΆΠ΄Π΅Π½ ΠΊΠΎΠ½ΡΡΠ°ΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠΎ ΡΡΠΎΠΉ ΡΠ΅ΠΌΠ΅ ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΠΌΠ°Π»ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π² ΡΠΈΠ»Ρ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎΡΡΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ Ρ ΡΡΠΈΡΠ°Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΌ Π½Π°ΠΏΠΎΠΌΠ½ΠΈΡΡ ΠΎΠ± ΡΡΠΎΠΌ. ΠΡΠ°ΠΊ.
if(rtbW>=960){var rtbBlockID="R-A-744041-3";} else{var rtbBlockID="R-A-744041-5";}
window.yaContextCb.push(()=>{Ya.Context.AdvManager.render({renderTo:"yandex_rtb_1",blockId:rtbBlockID,pageNumber:1,onError:(data)=>{var g=document.createElement("ins");g.className="adsbygoogle";g.style.display="inline";if(rtbW>=960){g.style.width="580px";g.style.height="400px";g.setAttribute("data-ad-slot","9935184599");}else{g.style.width="300px";g.style.height="600px";g.setAttribute("data-ad-slot","9935184599");} g.setAttribute("data-ad-client","ca-pub-1812626643144578");g.setAttribute("data-alternate-ad-url",stroke2);document.getElementById("yandex_rtb_1").appendChild(g);(adsbygoogle=window.adsbygoogle||[]).push({});}})});
window.addEventListener("load",()=>{
var ins=document.getElementById("yandex_rtb_1");if(ins.clientHeightΒ =="0"){ins.innerHTML=stroke3;}},true);
ΠΠ°Π²Π΅Π΄ΠΈΡΠ΅ ΡΠ²ΠΎΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΡΡΠ½ΠΊΡΠΈΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ myfunc.sh ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅ Π΅Π΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π² /usr/bin. ΠΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ² ΠΎΠ½Π° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ Π²Π°Ρ ΡΡΡΠ΄, Π½ΠΎ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΌΠ°Ρ
ΠΎΠΌ Π΄ΠΎΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΊΡΠΈΠΏΡΠΎΠ², Π΅ΡΠ»ΠΈ ΠΡ ΡΠ»ΡΡΡΠΈΡΠ΅ ΠΊΠ°ΠΊΡΡ-Π»ΠΈΠ±ΠΎ ΡΡΠ½ΠΊΡΠΈΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠ²Π΅ΡΠ΅ ΡΠΎΠ²Π΅ΡΠ° 2 ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ°ΠΊΡΡ ΡΡΠ½ΠΊΡΠΈΡ:
myAskYN()
{
local AMSURE
if [ -n "$1" ] ; then
read -n 1 -p "$1 (y/[a]): " AMSURE
else
read -n 1 AMSURE
fi
echo "" 1>&2
if [ "$AMSURE" = "y" ] ; then
return 0
else
return 1
fi
}
ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΡΡΠΎΠΊΡ Π²ΠΎΠΏΡΠΎΡΠ°. ΠΡΠ»ΠΈ ΡΡΡΠΎΠΊΠ° Π½Π΅ Π·Π°Π΄Π°Π½Π° β ΠΌΠΎΠ»ΡΠ°Π»ΠΈΠ²ΠΎΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ Π½Π°ΠΆΠ°ΡΠΈΡ (Π² ΡΠ»ΡΡΠ°ΡΡ , ΠΊΠΎΠ³Π΄Π° ΡΠΊΡΠΈΠΏΡ ΡΠΆΠ΅ ΡΡΠΏΠ΅Π» Π²ΡΠ²Π΅ΡΡΠΈ Π²ΡΠ΅ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π΅ΡΠ΅ Π΄ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ). Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΎΠ΅:
myAskYN "Π’Ρ ΡΠ²Π΅ΡΠ΅Π½, ΡΡΠΎ Ρ ΠΎΡΠ΅ΡΡ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΡΠΎ?" || exit
myAskYN() { local AMSURE if [ -n "$1" ] ; then read -n 1 -p "$1 (y/[a]): " AMSURE else read -n 1 AMSURE fi echo "" 1>&2 if [ "$AMSURE" = "y" ] ; then return 0 else return 1 fi }
ΠΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΈ Π΅ΡΠ΅ ΠΎΠ΄Π½Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ myAskYNE, Ρ Π±ΡΠΊΠ²ΠΎΠΉ E Π½Π° ΠΊΠΎΠ½ΡΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ return Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π½Π° exit. Π’ΠΎΠ³Π΄Π° Π·Π°ΠΏΠΈΡΡ Π±ΡΠ΄Π΅Ρ Π΅ΡΠ΅ ΠΏΡΠΎΡΠ΅:
myAskYNE "Π’Ρ ΡΠ²Π΅ΡΠ΅Π½, ΡΡΠΎ Ρ
ΠΎΡΠ΅ΡΡ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΡΠΎ?"
ΠΠ»ΡΡΡ ΠΎΡΠ΅Π²ΠΈΠ΄Π½Ρ: Π°) ΠΏΠΈΡΠ΅ΡΠ΅ ΠΌΠ΅Π½ΡΡΠ΅ ΠΊΠΎΠ΄Π°, Π±) ΠΊΠΎΠ΄ Π»Π΅Π³ΡΠ΅ ΡΠΈΡΠ°ΡΡ, Π²) Π½Π΅ ΠΎΡΠ²Π»Π΅ΠΊΠ°Π΅ΡΠ΅ΡΡ Π½Π° ΠΌΠ΅Π»ΠΎΡΠΈ, Π²ΡΠΎΠ΄Π΅ ΠΏΡΠΈΡΡΠ°Π²ΠΊΠΈ » (y/[a]): » ΠΊ ΡΠ΅ΡΡΡ (Π·Π°ΠΌΠ΅ΡΡ, ΡΡΠΎ [a] ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ any, Π° Π·Π°Π±ΡΠ°Π½Π½Π°Ρ Π² ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΠ΅ ΠΊΠ°Π²ΡΡΠΊΠΈ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΡΡΠΎ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ).
Π ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π·Π΄Π΅ΡΡ. ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ· Π½Π°ΡΠ΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, Π΅Π΅ Π½Π°Π΄ΠΎ Π½Π΅ Π·Π°Π±ΡΡΡ Π²ΠΊΠ»ΡΡΠΈΡΡ Π² ΡΠ°ΠΌ ΡΠΊΡΠΈΠΏΡ:
#!/bin/bash
a1=myfunc.sh ; source "$a1" ; if [ $? -ne 0 ] ; then echo "ΠΡΠΈΠ±ΠΊΠ° β
Π½Π΅Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ $a1" 1>&2 ; exit 1 ; fi
myAskYN "Π’Ρ ΡΠ²Π΅ΡΠ΅Π½, ΡΡΠΎ Ρ
ΠΎΡΠ΅ΡΡ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΡΠΎ?"
echo Run!
Π― Π½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΠΎ ΡΠ»ΠΎΠΆΠΈΠ» Π²Π΅ΡΡ Π²ΡΠ·ΠΎΠ² ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΎΡΠΈΠ±ΠΊΠΈ Π² ΠΎΠ΄Π½Ρ ΡΡΡΠΎΠΊΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ Π²Π΅ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°Ρ ΠΈ Π½Π΅ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ Π½Π°ΠΏΡΡΠΌΡΡ ΠΊ Π»ΠΎΠ³ΠΈΠΊΠ΅ ΡΠΊΡΠΈΠΏΡΠ°. ΠΠ°ΡΠ΅ΠΌ ΠΆΠ΅ Π΅Π΅ ΡΠ°ΡΡΡΠ³ΠΈΠ²Π°ΡΡ Π½Π° ΠΏΠΎΠ»-ΡΠΊΡΠ°Π½Π°? ΠΠ±ΡΠ°ΡΠΈΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΈΠΌΡ ΡΠΊΡΠΈΠΏΡΠ° ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°Π΄Π°Π²Π°ΡΡ ΠΈΠΌΡ ΡΠΊΡΠΈΠΏΡΠ° ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·, Π° ΡΡΠ°Π»ΠΎ Π±ΡΡΡ, ΠΌΠΎΠΆΠ½ΠΎ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠΎΠΊΡ ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΈΠΌΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π΄ΡΡΠ³ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΡΡΠ½ΠΊΡΠΈΠΉ, Π΅ΡΠ»ΠΈ Π½Π°Π΄ΠΎ.
Π’Π΅ΠΏΠ΅ΡΡ Π»ΡΠ±ΠΎΠΉ ΡΠΊΡΠΈΠΏΡ, Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠΉΡΡ Ρ ΡΡΠΈΡ
ΡΡΠ΅Ρ
ΡΡΡΠΎΡΠ΅ΠΊ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡ ΡΡΠΎ-ΡΠΎ Π±Π΅Π· ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ. ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡ Π²Π°ΠΌ ΡΠ°ΠΌΠΈΠΌ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΡ myAskYN ΡΡΠ½ΠΊΡΠΈΡ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ myAskYESNO.
Π‘ΠΎΠ²Π΅Ρ 4
Π Π°Π·ΠΎΠ²ΡΠ΅ΠΌ ΡΡΠΏΠ΅Ρ ΠΈ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠΈ.
sayWait()
{
local AMSURE
[ -n "$1" ] && echo "$@" 1>&2
read -n 1 -p "(Π½Π°ΠΆΠΌΠΈΡΠ΅ Π»ΡΠ±ΡΡ ΠΊΠ»Π°Π²ΠΈΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΡ)" AMSURE
echo "" 1>&2
}
cdAndCheck()
{
cd "$1"
if ! [ "$(pwd)" = "$1" ] ; then
echo "!!ΠΠ΅ ΠΌΠΎΠ³Ρ Π²ΡΡΠ°ΡΡ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ $1 - ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. ΠΡΡ
ΠΎΠ΄ΠΈΠΌ." 1>&2
exit 1
fi
}
checkDir()
{
if ! [ -d "$1" ] ; then
if [ -z "$2" ] ; then
echo "!!ΠΠ΅Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ $1 - ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. ΠΡΡ
ΠΎΠ΄ΠΈΠΌ." 1>&2
else
echo "$2" 1>&2
fi
exit 1
fi
}
checkFile()
{
if ! [ -f "$1" ] ; then
if [ -z "$2" ] ; then
echo "!!ΠΠ΅Ρ ΡΠ°ΠΉΠ»Π° $1 - ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. ΠΡΡ
ΠΎΠ΄ΠΈΠΌ." 1>&2
else
echo "$2" 1>&2
fi
exit 1
fi
}
checkParm()
{
if [ -z "$1" ] ; then
echo "!!$2. ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. ΠΡΡ
ΠΎΠ΄ΠΈΠΌ." 1>&2
exit 1
fi
}
ΠΠ΄Π΅ΡΡ ΠΎΠ±ΡΠ°ΡΡ Π²Π°ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π²ΡΡΡΠ΅ΡΠ°ΡΡΠ΅Π΅ΡΡ ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠ΅ 1>&2 ΠΏΠΎΡΠ»Π΅ echo. ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²Π°ΡΠΈ ΡΠΊΡΠΈΠΏΡΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π±ΡΠ΄ΡΡ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ Π½Π΅ΠΊΡΡ ΡΠ΅Π½Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ. Π Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΡΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π²Π»Π΅Π·Π΅Ρ Π² ΡΠΊΡΠ°Π½, Π° ΠΏΠΎΡΠΎΠΌΡ Π΅Π΅ Π½Π΅ΠΏΠ»ΠΎΡ ΠΎ Π±ΡΠ²Π°Π΅Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π² ΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π½Π° less. ΠΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ 1>&2 ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΡΠ²ΠΎΠ΄Π° Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΎΡΠΈΠ±ΠΎΠΊ. Π ΠΊΠΎΠ³Π΄Π° Π²Ρ Π²ΡΠ·ΡΠ²Π°Π΅ΡΠ΅ ΡΠΊΡΠΈΠΏΡ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
my-script.sh > out.txt
my-script.sh | less
Π² Π½Π΅ΠΌ Π½Π΅ ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ Π»ΠΈΡΠ½ΠΈΡ ΠΎΡΠΈΠ±ΠΎΡΠ½ΡΡ ΠΈ ΡΠ»ΡΠΆΠ΅Π±Π½ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, Π° ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎ, ΡΡΠΎ Π²Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Ρ ΠΎΡΠΈΡΠ΅ Π²ΡΠ²Π΅ΡΡΠΈ.
Π‘ΠΎΠ²Π΅Ρ 5
Π Bash Π½Π΅ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΎ ΠΎΠ±ΡΡΠΎΡΡ Π΄Π΅Π»Π° Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠΎΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ Π»Π΅Π³ΠΊΠΎ ΡΠ΅ΡΠ°Π΅ΡΡΡ. ΠΡΠΎΡΡΠΎ Π·Π°Π²Π΅Π΄ΠΈΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ, Π² ΠΊΠΎΡΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π±ΡΠ΄Π΅Ρ Π·Π°Π½ΠΎΡΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π° ΠΏΠΎ Π²ΡΡ ΠΎΠ΄Ρ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠΉΡΠ΅ ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ. ΠΡΡΠ°ΡΠΈ, ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π΅ΠΏΠ»ΠΎΡ ΠΎ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π² Π½Π°ΡΠ°Π»ΠΎ ΡΠ°ΠΌΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π²Π°ΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ. Π’Π°ΠΊΠΆΠ΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π²Π΅ΡΡΠΈ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ²ΡΠ΅ΠΌΠ΅ΡΡΠ½ΠΎ. ΠΠΎΡ Π½Π°ΡΠ°Π»ΠΎ Π²Π°ΡΠ΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ:
curPath= # ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Ρ ΡΠ΅ΠΊΡΡΠΈΠΌ Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΠΌ ΠΏΡΡΠ΅ΠΌ, Π³Π΄Π΅ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ ΡΠΊΡΠΈΠΏΡ
cRes= # ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π΄Π»Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΉ
pYes= # ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ --yes, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ ΠΏΠΎΠ·Π΄Π½Π΅Π΅
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ Π΅ΡΠ΅ ΡΠ°ΠΊΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ:
input1()
{
local a1
if [ -n "$1" ] ; then
read -p "$1" -sn 1 cRes
else
read -sn 1 cRes
fi
# ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΡ
Π²ΡΠ±ΠΎΡΠΎΠ²
while [ "$2" = "${2#*$cRes}" ] ; do
read -sn 1 cRes
done
echo $cRes 1>&2
}
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
cat <<'EOF'
ΠΡΠ±Π΅ΡΠΈ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅:
------------------------
a) ΠΠ΅ΠΉΡΡΠ²ΠΈΠ΅ 1
b) ΠΠ΅ΠΉΡΡΠ²ΠΈΠ΅ 2
.) ΠΡΡ
ΠΎΠ΄
EOF
input1 "Π’Π²ΠΎΠΉ Π²ΡΠ±ΠΎΡ: " "ab."
echo "ΠΡΠ±ΠΎΡ Π±ΡΠ»: $cRes"
ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅Ρ Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΡ Π΄ΠΎ ΡΠΏΠΈΡΠΊΠ° ΡΠΊΠ°Π·Π°Π½Π½ΡΡ (Π² ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΠΎ a, b, ΠΈ ΡΠΎΡΠΊΠ°). ΠΠΈΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ½ΡΠ΅ ΠΊΠ»Π°Π²ΠΈΡΠΈ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΡΡ Π½Π΅ Π±ΡΠ΄ΡΡ ΠΈ ΠΏΡΠΈ ΠΈΡ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π½ΠΈΡΠ΅Π³ΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡΡ ΡΠΎΠΆΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ. ΠΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ($cRes). Π Π½Π΅ΠΉ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π±ΡΠΊΠ²Π°, Π½Π°ΠΆΠ°ΡΠ°Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ.
Π‘ΠΎΠ²Π΅Ρ 6
ΠΠ°ΠΊΠΎΠΉ ΡΠΊΡΠΈΠΏΡ Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²? ΠΠ± ΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ ΡΠΎΠ½Π½Ρ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΡ. ΠΠΎΠ΄Π΅Π»ΡΡΡ ΡΠ²ΠΎΠΈΠΌ Π²ΠΈΠ΄Π΅Π½ΠΈΠ΅ΠΌ.
- ΠΡΠ°ΠΉΠ½Π΅ ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π»ΠΈΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
- Π― Π½Π΅ Π»ΡΠ±Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ΄Π½ΠΎΠ±ΡΠΊΠ²Π΅Π½Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ (Π° ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈ getopts) ΠΏΠΎ ΡΠΎΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅, ΡΡΠΎ ΡΠΊΡΠΈΠΏΡΠΎΠ² ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ, Π° Π±ΡΠΊΠ² ΠΌΠ°Π»ΠΎ. Π Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡΠ° -r ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ replace, Π΄Π»Ρ Π΄ΡΡΠ³ΠΎΠ³ΠΎ replicate, Π° Π΄Π»Ρ ΡΡΠ΅ΡΡΠ΅Π³ΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ remove ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. ΠΠΎΡΡΠΎΠΌΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ 2 Π½ΠΎΡΠ°ΡΠΈΠΈ, ΠΏΡΠΈΡΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ: Π°) —show-files-only, Π±) -sfo (ΠΊΠ°ΠΊ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΎΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ). ΠΡΠ°ΠΊΡΠΈΠΊΠ° ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ»ΡΡΠΈ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡΡΡΡ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ ΠΈ ΠΎΡΠ΅Π½Ρ Π½Π°Π΄ΠΎΠ»Π³ΠΎ.
- Π‘ΠΊΡΠΈΠΏΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ΄Π°Π²Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ Π½Π° Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ Π΅ΠΌΡ ΠΊΠ»ΡΡ. ΠΡΠΎ ΡΠ°ΡΡΠΈΡΠ½ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²ΡΡΠ²ΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΏΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ².
- ΠΠ· ΡΠΎΠ²Π΅ΡΠ° 2 Π²ΠΎΠ·ΡΠΌΠ΅ΠΌ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ: Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠΊΡΠΈΠΏΡ Π±Π΅Π· ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ. ΠΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΊ ΡΡΠΎΠΌΡ Π²Π°ΠΆΠ½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ β Π΅ΡΠ»ΠΈ Π½Π΅ ΡΠΊΠ°Π·Π°Π½ ΠΊΠ»ΡΡ —yes (ΠΊΠ»ΡΡ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π»ΡΠ±ΡΠΌ).
- ΠΠ»ΡΡΠΈ ΠΌΠΎΠ³ΡΡ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°ΡΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π΄Π»Ρ Π΄Π»ΠΈΠ½Π½ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ ΡΠ°ΠΊΠΎΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ: —source-file=my.txt (Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π· ΡΠ°Π²Π½ΠΎ), Π° Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΊΠΈΡ ΡΠ°ΠΊΠΎΠ΅: -sf my.txt (ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΠ±Π΅Π»).
Π ΡΡΠΎΠΌ ΡΠ²Π΅ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
while [ 1 ] ; do
if [ "$1" = "--yes" ] ; then
pYes=1
elif [ "${1#--source-file=}" != "$1" ] ; then
pSourceFile="${1#--source-file=}"
elif [ "$1" = "-sf" ] ; then
shift ; pSourceFile="$1"
elif [ "${1#--dest-file=}" != "$1" ] ; then
pDestFile="${1#--dest-file=}"
elif [ "$1" = "-df" ] ; then
shift ; pDestFile="$1"
elif [ -z "$1" ] ; then
break # ΠΠ»ΡΡΠΈ ΠΊΠΎΠ½ΡΠΈΠ»ΠΈΡΡ
else
echo "ΠΡΠΈΠ±ΠΊΠ°: Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΠΊΠ»ΡΡ" 1>&2
exit 1
fi
shift
done
checkParm "$pSourceFile" "ΠΠ΅ Π·Π°Π΄Π°Π½ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ ΡΠ°ΠΉΠ»"
checkParm "$pDestFile" "ΠΠ΅ Π·Π°Π΄Π°Π½ Π²ΡΡ
ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°ΠΉΠ»"
if [ "$pYes" != "1" ] ; then
myAskYNE "Π’Ρ ΡΠ²Π΅ΡΠ΅Π½, ΡΡΠΎ Ρ
ΠΎΡΠ΅ΡΡ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΡΠΎ?"
fi
echo "source=$pSourceFile, destination=$pDestFile"
ΠΡΠΎΡ ΠΊΠΎΠ΄ Π΄Π°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ:ΠΡΠΎ Π±Π°Π·ΠΎΠ²Π°Ρ ΡΠ°ΡΡΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡ ΠΈ Π΄Π°Π»ΡΡΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΏΠ°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π² Π½Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ:
procParmS()
{
[ -z "$2" ] && return 1
if [ "$1" = "$2" ] ; then
cRes="$3"
return 0
fi
return 1
}
procParmL()
{
[ -z "$1" ] && return 1
if [ "${2#$1=}" != "$2" ] ; then
cRes="${2#$1=}"
return 0
fi
return 1
}
ΠΡΠΈ ΡΡΠΎΠΌ ΡΠΈΠΊΠ» ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±ΠΎΠ²Π°ΡΠΈΠΌΡΠΌ:
while [ 1 ] ; do
if [ "$1" = "--yes" ] ; then
pYes=1
elif procParmS "-sf" "$1" "$2" ; then
pSourceFile="$cRes" ; shift
elif procParmL "--source-file" "$1" ; then
pSourceFile="$cRes"
elif procParmS "-df" "$1" "$2" ; then
pDestFile="$cRes" ; shift
elif procParmL "--dest-file" "$1" ; then
pDestFile="$cRes"
elif [ -z "$1" ] ; then
break # ΠΠ»ΡΡΠΈ ΠΊΠΎΠ½ΡΠΈΠ»ΠΈΡΡ
else
echo "ΠΡΠΈΠ±ΠΊΠ°: Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΠΊΠ»ΡΡ" 1>&2
exit 1
fi
shift
done
Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ, ΡΡΠΎΡ ΡΠΈΠΊΠ» ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ· ΡΠΊΡΠΈΠΏΡΠ° Π² ΡΠΊΡΠΈΠΏΡ Π½Π΅ Π·Π°Π΄ΡΠΌΡΠ²Π°ΡΡΡ Π½ΠΈ ΠΎ ΡΠ΅ΠΌ, ΠΊΡΠΎΠΌΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠΉ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΈ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ°. ΠΡΠΈΡΠ΅ΠΌ ΠΎΠ½ΠΈ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π΅ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΡΡ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½Π°.
ΠΠ΅Ρ ΠΏΡΠ΅Π΄Π΅Π»Π° ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²Ρ, ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π΅ΡΠ΅ Π΄ΠΎΠ»Π³ΠΎ Β«ΡΠ»ΡΡΡΠ°ΡΡΒ» ΡΡΠ½ΠΊΡΠΈΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π² procParmS ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π½Π° Π½Π΅ΠΏΡΡΡΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ΅ΡΠΈΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΈ Π²ΡΠ²Π°Π»ΠΈΡΡΡΡ ΠΏΠΎ ΠΎΡΠΈΠ±ΠΊΠ΅ Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅. Π ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅.
Π€Π°ΠΉΠ» Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°ΡΠ°ΡΡ Π·Π΄Π΅ΡΡ.
Π’Π΅ΡΡΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» Π·Π΄Π΅ΡΡ.
Π½Π°ΡΠ°Π»ΠΎ / RUVDS.com corporate blog / Habr
Bash-ΡΠΊΡΠΈΠΏΡΡ: Π½Π°ΡΠ°Π»ΠΎ
Bash-ΡΠΊΡΠΈΠΏΡΡ, ΡΠ°ΡΡΡ 2: ΡΠΈΠΊΠ»Ρ
Bash-ΡΠΊΡΠΈΠΏΡΡ, ΡΠ°ΡΡΡ 3: ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΈ ΠΊΠ»ΡΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ
Bash-ΡΠΊΡΠΈΠΏΡΡ, ΡΠ°ΡΡΡ 4: Π²Π²ΠΎΠ΄ ΠΈ Π²ΡΠ²ΠΎΠ΄
Bash-ΡΠΊΡΠΈΠΏΡΡ, ΡΠ°ΡΡΡ 5: ΡΠΈΠ³Π½Π°Π»Ρ, ΡΠΎΠ½ΠΎΠ²ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΡΠΌΠΈ
Bash-ΡΠΊΡΠΈΠΏΡΡ, ΡΠ°ΡΡΡ 6: ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ
Bash-ΡΠΊΡΠΈΠΏΡΡ, ΡΠ°ΡΡΡ 7: sed ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ΅ΠΊΡΡΠΎΠ²
Bash-ΡΠΊΡΠΈΠΏΡΡ, ΡΠ°ΡΡΡ 8: ΡΠ·ΡΠΊ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ awk
Bash-ΡΠΊΡΠΈΠΏΡΡ, ΡΠ°ΡΡΡ 9: ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ
Bash-ΡΠΊΡΠΈΠΏΡΡ, ΡΠ°ΡΡΡ 10: ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ
Bash-ΡΠΊΡΠΈΠΏΡΡ, ΡΠ°ΡΡΡ 11: expect ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΡ ΡΡΠΈΠ»ΠΈΡ
Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ bash-ΡΠΊΡΠΈΠΏΡΠ°Ρ . ΠΡΠΎ β ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ bash. Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ β zsh, tcsh, ksh, Π½ΠΎ ΠΌΡ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΠΌΡΡ Π½Π° bash. ΠΡΠΎΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΆΠ΅Π»Π°ΡΡΠΈΡ , Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ β ΡΠΌΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ Linux.
Π‘ΡΠ΅Π½Π°ΡΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ β ΡΡΠΎ Π½Π°Π±ΠΎΡΡ ΡΠ΅Ρ
ΠΆΠ΅ ΡΠ°ΠΌΡΡ
ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Π²ΠΎΠ΄ΠΈΡΡ Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ, ΡΠΎΠ±ΡΠ°Π½Π½ΡΠ΅ Π² ΡΠ°ΠΉΠ»Ρ ΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ½Π½ΡΠ΅ Π½Π΅ΠΊΠΎΠ΅ΠΉ ΠΎΠ±ΡΠ΅ΠΉ ΡΠ΅Π»ΡΡ. ΠΡΠΈ ΡΡΠΎΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΠΎΠ³ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ Π»ΠΈΠ±ΠΎ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΡΡ ΡΠ΅Π½Π½ΠΎΡΡΡ, Π»ΠΈΠ±ΠΎ ΡΠ»ΡΠΆΠΈΡΡ Π²Ρ
ΠΎΠ΄Π½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ
ΠΊΠΎΠΌΠ°Π½Π΄. Π‘ΡΠ΅Π½Π°ΡΠΈΠΈ β ΡΡΠΎ ΠΌΠΎΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°ΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ
Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ.
ΠΡΠ°ΠΊ, Π΅ΡΠ»ΠΈ Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅, ΠΎΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ Π·Π° ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·, Π²Π²Π΅Π΄Ρ ΠΈΡ ΡΠ΅ΡΠ΅Π· ΡΠΎΡΠΊΡ Ρ Π·Π°ΠΏΡΡΠΎΠΉ:
pwd ; whoami
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Π΅ΡΠ»ΠΈ Π²Ρ ΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°Π»ΠΈ ΡΡΠΎ Π² ΡΠ²ΠΎΡΠΌ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅, Π²Π°Ρ ΠΏΠ΅ΡΠ²ΡΠΉ bash-ΡΠΊΡΠΈΠΏΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½Ρ Π΄Π²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΠΆΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½. Π Π°Π±ΠΎΡΠ°Π΅Ρ ΠΎΠ½ ΡΠ°ΠΊ. Π‘Π½Π°ΡΠ°Π»Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° pwd
Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΠ°Π±ΠΎΡΠ΅ΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, ΠΏΠΎΡΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π° whoami
ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅, ΠΏΠΎΠ΄ ΠΊΠΎΡΠΎΡΡΠΌ Π²Ρ Π²ΠΎΡΠ»ΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ²ΠΌΠ΅ΡΠ°ΡΡ ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ Π² ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅, ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ β Π»ΠΈΡΡ Π² ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅. ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
getconf ARG_MAX
ΠΠΎΠΌΠ°Π½Π΄Π½Π°Ρ ΡΡΡΠΎΠΊΠ° β ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, Π½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² Π½Π΅Ρ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ Π²Π²ΠΎΠ΄ΠΈΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π² Π½ΠΈΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ. Π§ΡΠΎ Π΅ΡΠ»ΠΈ Π·Π°ΠΏΠΈΡΠ°ΡΡ Π½Π°Π±ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄ Π² ΡΠ°ΠΉΠ» ΠΈ ΠΏΡΠΎΡΡΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΡΠΎΡ ΡΠ°ΠΉΠ» Π΄Π»Ρ ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ? Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ Π³ΠΎΠ²ΠΎΡΡ, ΡΠΎΡ ΡΠ°ΠΉΠ», ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠΌ, ΠΈ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ.
ΠΠ°ΠΊ ΡΡΡΡΠΎΠ΅Π½Ρ bash-ΡΠΊΡΠΈΠΏΡΡ
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΏΡΡΡΠΎΠΉ ΡΠ°ΠΉΠ» Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ touch
. Π Π΅Π³ΠΎ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΠΊΠ°ΠΊΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΡ ΠΌΡ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ. ΠΠ°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅Ρ bash
, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠ΅ΡΠ²Π°Ρ ΡΡΡΠΎΠΊΠ° ΡΠ°ΠΉΠ»Π° Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΎΠΉ:
#!/bin/bash
Π Π΄ΡΡΠ³ΠΈΡ
ΡΡΡΠΎΠΊΠ°Ρ
ΡΡΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΡΠΈΠΌΠ²ΠΎΠ» ΡΠ΅ΡΡΡΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° Π½Π΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΏΠ΅ΡΠ²Π°Ρ ΡΡΡΠΎΠΊΠ° β ΡΡΠΎ ΠΎΡΠΎΠ±ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ, Π·Π΄Π΅ΡΡ ΡΠ΅ΡΡΡΠΊΠ°, Π·Π° ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΠΎΡΠΊΠ»ΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ Π·Π½Π°ΠΊ (ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π½Π°Π·ΡΠ²Π°ΡΡ ΡΠ΅Π±Π°Π½Π³) ΠΈ ΠΏΡΡΡ ΠΊ bash
, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΡΠΎΠ·Π΄Π°Π½ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄Π»Ρ bash
.
ΠΠΎΠΌΠ°Π½Π΄Ρ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ ΠΎΡΠ΄Π΅Π»ΡΡΡΡΡ Π·Π½Π°ΠΊΠΎΠΌ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° ΡΡΡΠΎΠΊΠΈ, ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π²ΡΠ΄Π΅Π»ΡΡΡ Π·Π½Π°ΠΊΠΎΠΌ ΡΠ΅ΡΡΡΠΊΠΈ. ΠΠΎΡ ΠΊΠ°ΠΊ ΡΡΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ:
#!/bin/bash
# This is a comment
pwd
whoami
Π’ΡΡ, ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅, ΡΠ°Π·Π΄Π΅Π»ΡΡ ΡΠΎΡΠΊΠΎΠΉ Ρ Π·Π°ΠΏΡΡΠΎΠΉ. ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π° ΡΠ°Π·Π½ΡΡ ΡΡΡΠΎΠΊΠ°Ρ , ΡΠ°ΠΉΠ» Π»Π΅Π³ΡΠ΅ ΡΠΈΡΠ°ΡΡ. Π Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° ΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΡΠ°ΠΉΠ»Π° ΡΡΠ΅Π½Π°ΡΠΈΡ
Π‘ΠΎΡ
ΡΠ°Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ», Π΄Π°Π² Π΅ΠΌΡ ΠΈΠΌΡ myscript
, ΠΈ ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ bash-ΡΠΊΡΠΈΠΏΡΠ° ΠΏΠΎΡΡΠΈ Π·Π°ΠΊΠΎΠ½ΡΠ΅Π½Π°. Π‘Π΅ΠΉΡΠ°Ρ ΠΎΡΡΠ°Π»ΠΎΡΡ Π»ΠΈΡΡ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎΡ ΡΠ°ΠΉΠ» ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΌ, ΠΈΠ½Π°ΡΠ΅, ΠΏΠΎΠΏΡΡΠ°Π²ΡΠΈΡΡ Π΅Π³ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ, Π²Ρ ΡΡΠΎΠ»ΠΊΠ½ΡΡΠ΅ΡΡ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ Permission denied
.
ΠΠΎΠΏΡΡΠΊΠ° Π·Π°ΠΏΡΡΠΊΠ° ΡΠ°ΠΉΠ»Π° ΡΡΠ΅Π½Π°ΡΠΈΡ Ρ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π½Π°ΡΡΡΠΎΠ΅Π½Π½ΡΠΌΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡΠΌΠΈ
Π‘Π΄Π΅Π»Π°Π΅ΠΌ ΡΠ°ΠΉΠ» ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΌ:
chmod +x ./myscript
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΠΏΡΡΠ°Π΅ΠΌΡΡ Π΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ:
./myscript
ΠΠΎΡΠ»Π΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Π²ΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠ°ΠΊ Π½Π°Π΄ΠΎ.
Π£ΡΠΏΠ΅ΡΠ½ΡΠΉ Π·Π°ΠΏΡΡΠΊ bash-ΡΠΊΡΠΈΠΏΡΠ°
ΠΡΠ²ΠΎΠ΄ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ
ΠΠ»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΠ΅ΠΊΡΡΠ° Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ Linux ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° echo
. ΠΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π·Π½Π°Π½ΠΈΠ΅ΠΌ ΡΡΠΎΠ³ΠΎ ΡΠ°ΠΊΡΠ° ΠΈ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠ΅ΠΌ Π½Π°Ρ ΡΠΊΡΠΈΠΏΡ, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΡ ΠΊ Π΄Π°Π½Π½ΡΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ²ΠΎΠ΄ΡΡ ΡΠΆΠ΅ ΠΈΠΌΠ΅ΡΡΠΈΠ΅ΡΡ Π² Π½ΡΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
#!/bin/bash
# our comment is here
echo "The current directory is:"
pwd
echo "The user logged in is:"
whoami
ΠΠΎΡ ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ½Π½ΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡΠ°.
ΠΡΠ²ΠΎΠ΄ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΈΠ· ΡΠΊΡΠΈΠΏΡΠ°
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΠΏΠΎΡΡΠ½ΡΡΡΠΈΠ΅ Π½Π°Π΄ΠΏΠΈΡΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ echo
. ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ Π·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ», ΠΏΠΎΠ»ΡΠ·ΡΡΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ Linux, ΠΈΠ»ΠΈ ΡΠ°Π½ΡΡΠ΅ Π½Π΅ Π²ΡΡΡΠ΅ΡΠ°Π»ΠΈΡΡ Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ echo
, Π²Π·Π³Π»ΡΠ½ΠΈΡΠ΅ Π½Π° ΡΡΠΎΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π».
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Ρ ΡΠ°Π½ΠΈΡΡ Π² ΡΠ°ΠΉΠ»Π΅ ΡΡΠ΅Π½Π°ΡΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ β ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈΡ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ.
ΠΠ΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ ΠΏΠ»ΠΎΡ ΠΎΠ³ΠΎ Π² ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ Π±Π΅Π· Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΈΡ ΡΠ°Π±ΠΎΡΡ, Π½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° Π²Π΅ΡΡΠΌΠ° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Ρ.
Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ Π΄Π²Π° ΡΠΈΠΏΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² bash-ΡΠΊΡΠΈΠΏΡΠ°Ρ :
- ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΡΠ΅Π΄Ρ
- ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΡΠ΅Π΄Ρ
ΠΠ½ΠΎΠ³Π΄Π° Π² ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ Π½ΡΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π½Π΅ΠΊΠΈΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ. ΠΠΎΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΠΊ Π²ΡΠ²Π΅ΡΡΠΈ Π΄ΠΎΠΌΠ°ΡΠ½ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ:
#!/bin/bash
# display user home
echo "Home for the current user is: $HOME"
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ $HOME
Π² Π΄Π²ΠΎΠΉΠ½ΡΡ
ΠΊΠ°Π²ΡΡΠΊΠ°Ρ
, ΡΡΠΎ Π½Π΅ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ ΡΠΈΡΡΠ΅ΠΌΠ΅ Π΅Ρ ΡΠ°ΡΠΏΠΎΠ·Π½Π°ΡΡ. ΠΠΎΡ ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ, Π΅ΡΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π²ΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΡΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΡΠ΅Π΄Ρ Π² ΡΡΠ΅Π½Π°ΡΠΈΠΈ
Π ΡΡΠΎ Π΅ΡΠ»ΠΈ Π½Π°Π΄ΠΎ Π²ΡΠ²Π΅ΡΡΠΈ Π½Π° ΡΠΊΡΠ°Π½ Π·Π½Π°ΡΠΎΠΊ Π΄ΠΎΠ»Π»Π°ΡΠ°? ΠΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΡΠ°ΠΊ:
echo "I have $1 in my pocket"
Π‘ΠΈΡΡΠ΅ΠΌΠ° ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡ Π·Π½Π°ΠΊ Π΄ΠΎΠ»Π»Π°ΡΠ° Π² ΡΡΡΠΎΠΊΠ΅, ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠΉ ΠΊΠ°Π²ΡΡΠΊΠ°ΠΌΠΈ, ΠΈ ΡΠ΅ΡΠΈΡ, ΡΡΠΎ ΠΌΡ ΡΠΎΡΠ»Π°Π»ΠΈΡΡ Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ. Π‘ΠΊΡΠΈΠΏΡ ΠΏΠΎΠΏΡΡΠ°Π΅ΡΡΡ Π²ΡΠ²Π΅ΡΡΠΈ Π½Π° ΡΠΊΡΠ°Π½ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ $1
. ΠΡΠΎ Π½Π΅ ΡΠΎ, ΡΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ. Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ?
Π ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΏΡΠ°Π²Π»ΡΡΡΠ΅Π³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π°, ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΠΊΠΎΡΠΎΠΉ ΡΠ΅ΡΡΡ, ΠΏΠ΅ΡΠ΅Π΄ Π·Π½Π°ΠΊΠΎΠΌ Π΄ΠΎΠ»Π»Π°ΡΠ°:
echo "I have \$1 in my pocket"
Π’Π΅ΠΏΠ΅ΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠΉ Π²ΡΠ²Π΅Π΄Π΅Ρ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠΎ, ΡΡΠΎ ΠΎΠΆΠΈΠ΄Π°Π΅ΡΡΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΏΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° Π·Π½Π°ΠΊΠ° Π΄ΠΎΠ»Π»Π°ΡΠ°
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅
Π Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΡΡΠ΅Π΄Ρ, bash-ΡΠΊΡΠΈΠΏΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π·Π°Π΄Π°Π²Π°ΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅. ΠΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Ρ ΡΠ°Π½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π·Π°Π²Π΅ΡΡΠΈΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΡ.
ΠΠ°ΠΊ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ, ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π·Π½Π°ΠΊ Π΄ΠΎΠ»Π»Π°ΡΠ°:
TNW-CUS-FMP β ΠΏΡΠΎΠΌΠΎ-ΠΊΠΎΠ΄ Π½Π° 10% ΡΠΊΠΈΠ΄ΠΊΡ Π½Π° Π½Π°ΡΠΈ ΡΡΠ»ΡΠ³ΠΈ, Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π΄Π»Ρ Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠΈ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ 7 Π΄Π½Π΅ΠΉ
#!/bin/bash
# testing variables
grade=5
person="Adam"
echo "$person is a good boy, he is in grade $grade"
ΠΠΎΡ ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΡΠ΅Π½Π°ΡΠΈΡ.
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π² ΡΡΠ΅Π½Π°ΡΠΈΠΈ
ΠΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄
ΠΠ΄Π½Π° ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ bash-ΡΠΊΡΠΈΠΏΡΠΎΠ² β ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈΠ· Π²ΡΠ²ΠΎΠ΄Π° ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ Π½Π°Π·Π½Π°ΡΠ°ΡΡ Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π³Π΄Π΅ ΡΠ³ΠΎΠ΄Π½ΠΎ Π² ΡΠ°ΠΉΠ»Π΅ ΡΡΠ΅Π½Π°ΡΠΈΡ.
Π‘Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π²ΡΠΌΡ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ.
- Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Π·Π½Π°ΡΠΊΠ° ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π°ΠΏΠΎΡΡΡΠΎΡΠ° Β«`Β»
- Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ
$()
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄, ΠΏΡΠΎΡΠ»Π΅Π΄ΠΈΡΠ΅ Π·Π° ΡΠ΅ΠΌ, ΡΡΠΎΠ±Ρ Π²ΠΌΠ΅ΡΡΠΎ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π°ΠΏΠΎΡΡΡΠΎΡΠ° Π½Π΅ Π²Π²Π΅ΡΡΠΈ ΠΎΠ΄ΠΈΠ½ΠΎΡΠ½ΡΡ ΠΊΠ°Π²ΡΡΠΊΡ. ΠΠΎΠΌΠ°Π½Π΄Ρ Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΊΠ»ΡΡΠΈΡΡ Π² Π΄Π²Π° ΡΠ°ΠΊΠΈΡ Π·Π½Π°ΡΠΊΠ°:
mydir=`pwd`
ΠΡΠΈ Π²ΡΠΎΡΠΎΠΌ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π΅ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ ΡΠ°ΠΊ:
mydir=$(pwd)
Π ΡΠΊΡΠΈΠΏΡ, Π² ΠΈΡΠΎΠ³Π΅, ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
#!/bin/bash
mydir=$(pwd)
echo $mydir
Π Ρ
ΠΎΠ΄Π΅ Π΅Π³ΠΎ ΡΠ°Π±ΠΎΡΡ Π²ΡΠ²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ pwd
Π±ΡΠ΄Π΅Ρ ΡΠΎΡ
ΡΠ°Π½ΡΠ½ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ mydir
, ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΊΠΎΡΠΎΡΠΎΠΉ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ echo
, ΠΏΠΎΠΏΠ°Π΄ΡΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ.
Π‘ΠΊΡΠΈΠΏΡ, ΡΠΎΡ
ΡΠ°Π½ΡΡΡΠΈΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ
ΠΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ
ΠΠ»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π² ΡΠ°ΠΉΠ»Π΅ ΡΠΊΡΠΈΠΏΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ Π²ΠΈΠ΄Π° $((a+b))
:
#!/bin/bash
var1=$(( 5 + 5 ))
echo $var1
var2=$(( $var1 * 2 ))
echo $var2
ΠΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π² ΡΡΠ΅Π½Π°ΡΠΈΠΈ
Π£ΠΏΡΠ°Π²Π»ΡΡΡΠ°Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ if-then
Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΡΡΠ΅Π½Π°ΡΠΈΡΡ
ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠΌ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π½Π΅ΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΡΡΠΈ, Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΎΠ΄Π½ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ β Π΄ΡΡΠ³ΠΎΠ΅. ΠΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ Π² ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ
ΡΠΈΡΡΠ°ΡΠΈΡΡ
, ΠΈ Π·Π΄Π΅ΡΡ Π½Π°ΠΌ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡΠ°Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ if-then
. Π Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠΎΠΌ Π²ΠΈΠ΄Π΅ ΠΎΠ½Π° Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
if ΠΊΠΎΠΌΠ°Π½Π΄Π°
then
ΠΊΠΎΠΌΠ°Π½Π΄Ρ
fi
Π Π²ΠΎΡ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ:
#!/bin/bash
if pwd
then
echo "It works"
fi
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ pwd
Π·Π°Π²Π΅ΡΡΠΈΡΡΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ, Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ ΡΠ΅ΠΊΡΡ Β«it worksΒ».
ΠΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΈΠΌΠ΅ΡΡΠΈΠΌΠΈΡΡ Ρ Π½Π°Ρ Π·Π½Π°Π½ΠΈΡΠΌΠΈ ΠΈ Π½Π°ΠΏΠΈΡΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ. Π‘ΠΊΠ°ΠΆΠ΅ΠΌ, Π½Π°Π΄ΠΎ Π½Π°ΠΉΡΠΈ Π½Π΅ΠΊΠΎΠ΅Π³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² /etc/passwd
, ΠΈ Π΅ΡΠ»ΠΈ Π½Π°ΠΉΡΠΈ Π΅Π³ΠΎ ΡΠ΄Π°Π»ΠΎΡΡ, ΡΠΎΠΎΠ±ΡΠΈΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ.
#!/bin/bash
user=likegeeks
if grep $user /etc/passwd
then
echo "The user $user Exists"
fi
ΠΠΎΡ ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° ΡΡΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡΠ°.
ΠΠΎΠΈΡΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
ΠΠ΄Π΅ΡΡ ΠΌΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ grep
Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² ΡΠ°ΠΉΠ»Π΅ /etc/passwd
. ΠΡΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° grep
Π²Π°ΠΌ Π½Π΅Π·Π½Π°ΠΊΠΎΠΌΠ°, Π΅Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π·Π΄Π΅ΡΡ.
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, Π΅ΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π°ΠΉΠ΄Π΅Π½, ΡΠΊΡΠΈΠΏΡ Π²ΡΠ²Π΅Π΄Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅. Π Π΅ΡΠ»ΠΈ Π½Π°ΠΉΡΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ? Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠΊΡΠΈΠΏΡ ΠΏΡΠΎΡΡΠΎ Π·Π°Π²Π΅ΡΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Π½ΠΈΡΠ΅Π³ΠΎ Π½Π°ΠΌ Π½Π΅ ΡΠΎΠΎΠ±ΡΠΈΠ². Π₯ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΡΠΊΠ°Π·Π°Π» Π½Π°ΠΌ ΠΈ ΠΎΠ± ΡΡΠΎΠΌ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΡΠ΅ΠΌ ΠΊΠΎΠ΄.
Π£ΠΏΡΠ°Π²Π»ΡΡΡΠ°Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ if-then-else
ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΌΠΎΠ³Π»Π° ΡΠΎΠΎΠ±ΡΠΈΡΡ ΠΈ ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°Ρ
ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ°, ΠΈ ΠΎ Π½Π΅ΡΠ΄Π°ΡΠ΅, Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ if-then-else
. ΠΠΎΡ ΠΊΠ°ΠΊ ΠΎΠ½Π° ΡΡΡΡΠΎΠ΅Π½Π°:
if ΠΊΠΎΠΌΠ°Π½Π΄Π°
then
ΠΊΠΎΠΌΠ°Π½Π΄Ρ
else
ΠΊΠΎΠΌΠ°Π½Π΄Ρ
fi
ΠΡΠ»ΠΈ ΠΏΠ΅ΡΠ²Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠΈΡ Π½ΠΎΠ»Ρ, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π΅Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, ΡΡΠ»ΠΎΠ²ΠΈΠ΅ ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ ΠΈΡΡΠΈΠ½Π½ΡΠΌ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΏΠΎΠΉΠ΄ΡΡ ΠΏΠΎ Π²Π΅ΡΠΊΠ΅ else
. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΎ ΡΡΠΎ-ΡΠΎ, ΠΎΡΠ»ΠΈΡΠ°ΡΡΠ΅Π΅ΡΡ ΠΎΡ Π½ΡΠ»Ρ, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΠ·Π½Π°ΡΠ°ΡΡ Π½Π΅ΡΠ΄Π°ΡΡ, ΠΈΠ»ΠΈ Π»ΠΎΠΆΠ½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, Π±ΡΠ΄ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΏΠΎΡΠ»Π΅ else
.
ΠΠ°ΠΏΠΈΡΠ΅ΠΌ ΡΠ°ΠΊΠΎΠΉ ΡΠΊΡΠΈΠΏΡ:
#!/bin/bash
user=anotherUser
if grep $user /etc/passwd
then
echo "The user $user Exists"
else
echo "The user $user doesnβt exist"
fi
ΠΠ³ΠΎ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»ΠΎ ΠΏΠΎ Π²Π΅ΡΠΊΠ΅ else
.
ΠΠ°ΠΏΡΡΠΊ ΡΠΊΡΠΈΠΏΡΠ° Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ if-then-else
ΠΡ ΡΡΠΎ ΠΆΠ΅, ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ Π΄Π²ΠΈΠ³Π°ΡΡΡΡ Π΄Π°Π»ΡΡΠ΅ ΠΈ Π·Π°Π΄Π°Π΄ΠΈΠΌΡΡ Π²ΠΎΠΏΡΠΎΡΠΎΠΌ ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡΡ . Π§ΡΠΎ Π΅ΡΠ»ΠΈ Π½Π°Π΄ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π½Π΅ ΠΎΠ΄Π½ΠΎ ΡΡΠ»ΠΎΠ²ΠΈΠ΅, Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ? ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π½ΡΠΆΠ½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π°ΠΉΠ΄Π΅Π½, Π½Π°Π΄ΠΎ Π²ΡΠ²Π΅ΡΡΠΈ ΠΎΠ΄Π½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π΅ΡΡ ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ β Π΅ΡΡ ΠΎΠ΄Π½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. Π ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ Π½Π°ΠΌ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ. ΠΡΠ³Π»ΡΠ΄ΠΈΡ ΡΡΠΎ ΡΠ°ΠΊ:
if ΠΊΠΎΠΌΠ°Π½Π΄Π°1
then
ΠΊΠΎΠΌΠ°Π½Π΄Ρ
elif ΠΊΠΎΠΌΠ°Π½Π΄Π°2
then
ΠΊΠΎΠΌΠ°Π½Π΄Ρ
fi
ΠΡΠ»ΠΈ ΠΏΠ΅ΡΠ²Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²Π΅ΡΠ½ΡΡ Π½ΠΎΠ»Ρ, ΡΡΠΎ Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΎ Π΅Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ then
, ΠΈΠ½Π°ΡΠ΅, Π΅ΡΠ»ΠΈ ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ Π»ΠΎΠΆΠ½ΡΠΌ, ΠΈ Π΅ΡΠ»ΠΈ Π²ΡΠΎΡΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²Π΅ΡΠ½ΡΡ Π½ΠΎΠ»Ρ, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡΡ Π²ΡΠΎΡΠΎΠΉ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°.
#!/bin/bash
user=anotherUser
if grep $user /etc/passwd
then
echo "The user $user Exists"
elif ls /home
then
echo "The user doesnβt exist but anyway there is a directory under /home"
fi
Π ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΌ ΡΠΊΡΠΈΠΏΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ useradd
, Π΅ΡΠ»ΠΈ ΠΏΠΎΠΈΡΠΊ Π½Π΅ Π΄Π°Π» ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ², ΠΈΠ»ΠΈ Π΄Π΅Π»Π°ΡΡ Π΅ΡΡ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅.
Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΠΈΡΠ΅Π»
Π ΡΠΊΡΠΈΠΏΡΠ°Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ ΡΠΈΡΠ»ΠΎΠ²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½ ΡΠΏΠΈΡΠΎΠΊ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄.
n1 -eq n2
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΡΡΠΈΠ½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈn1
ΡΠ°Π²Π½ΠΎn2
.n1 -ge n2
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΡΡΠΈΠ½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈn1
Π±ΠΎΠ»ΡΡΠ΅ ΠΈΠ»ΠΈ ΡΠ°Π²Π½ΠΎn2
.n1 -gt n2
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΡΡΠΈΠ½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈn1
Π±ΠΎΠ»ΡΡΠ΅n2
.n1 -le n2
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΡΡΠΈΠ½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈn1
ΠΌΠ΅Π½ΡΡΠ΅ ΠΈΠ»ΠΈ ΡΠ°Π²Π½ΠΎn2
.n1 -lt n2
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΡΡΠΈΠ½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ n1 ΠΌΠ΅Π½ΡΡΠ΅n2
.n1 -ne n2
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΡΡΠΈΠ½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈn1
Π½Π΅ ΡΠ°Π²Π½ΠΎn2
.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΎ Π² ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ.
#!/bin/bash
val1=6
if [ $val1 -gt 5 ]
then
echo "The test value $val1 is greater than 5"
else
echo "The test value $val1 is not greater than 5"
fi
ΠΠΎΡ ΡΡΠΎ Π²ΡΠ²Π΅Π΄Π΅Ρ ΡΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π°.
Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΠΈΡΠ΅Π» Π² ΡΠΊΡΠΈΠΏΡΠ°Ρ
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ val1
Π±ΠΎΠ»ΡΡΠ΅ ΡΠ΅ΠΌ 5, Π² ΠΈΡΠΎΠ³Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π²Π΅ΡΠ²Ρ then
ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΠΈ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅.
Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΡΡΠΎΠΊ
Π ΡΡΠ΅Π½Π°ΡΠΈΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ ΠΈ ΡΡΡΠΎΠΊΠΎΠ²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Π²ΡΠ³Π»ΡΠ΄ΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ, ΠΎΠ΄Π½Π°ΠΊΠΎ Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΡΡΡΠΎΠΊ Π΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ ΠΊΠΎΡΠ½ΡΠΌΡΡ Π½ΠΈΠΆΠ΅. ΠΠΎΡ ΡΠΏΠΈΡΠΎΠΊ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ².
str1 = str2
ΠΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΡΡΡΠΎΠΊΠΈ Π½Π° ΡΠ°Π²Π΅Π½ΡΡΠ²ΠΎ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΡΡΠΈΠ½Ρ, Π΅ΡΠ»ΠΈ ΡΡΡΠΎΠΊΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½Ρ.
str1 != str2
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΡΡΠΈΠ½Ρ, Π΅ΡΠ»ΠΈ ΡΡΡΠΎΠΊΠΈ Π½Π΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½Ρ.str1 < str2
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΡΡΠΈΠ½Ρ, Π΅ΡΠ»ΠΈstr1
ΠΌΠ΅Π½ΡΡΠ΅, ΡΠ΅ΠΌstr2
.str1 > str2
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΡΡΠΈΠ½Ρ, Π΅ΡΠ»ΠΈstr1
Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌstr2
.-n str1
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΡΡΠΈΠ½Ρ, Π΅ΡΠ»ΠΈ Π΄Π»ΠΈΠ½Π°str1
Π±ΠΎΠ»ΡΡΠ΅ Π½ΡΠ»Ρ.-z str1
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΡΡΠΈΠ½Ρ, Π΅ΡΠ»ΠΈ Π΄Π»ΠΈΠ½Π°str1
ΡΠ°Π²Π½Π° Π½ΡΠ»Ρ.
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΡΡΡΠΎΠΊ Π² ΡΡΠ΅Π½Π°ΡΠΈΠΈ:
#!/bin/bash
user ="likegeeks"
if [$user = $USER]
then
echo "The user $user Β is the current logged in user"
fi
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ° ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅.
Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΡΡΠΎΠΊ Π² ΡΠΊΡΠΈΠΏΡΠ°Ρ
ΠΠΎΡ ΠΎΠ΄Π½Π° ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΡΡΡΠΎΠΊ, ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΡΠΎΠΈΡ ΡΠΏΠΎΠΌΡΠ½ΡΡΡ. Π ΠΈΠΌΠ΅Π½Π½ΠΎ, ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ Β«>Β» ΠΈ Β«<Β» Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΠΊΠΎΡΠΎΠΉ ΡΠ΅ΡΡΡ, ΠΈΠ½Π°ΡΠ΅ ΡΠΊΡΠΈΠΏΡ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, Ρ ΠΎΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ ΠΈ Π½Π΅ ΠΏΠΎΡΠ²ΠΈΡΡΡ. Π‘ΠΊΡΠΈΠΏΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅Ρ Π·Π½Π°ΠΊ Β«>Β» ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²ΡΠ²ΠΎΠ΄Π°.
ΠΠΎΡ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ° Ρ ΡΡΠΈΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π² ΠΊΠΎΠ΄Π΅:
#!/bin/bash
val1=text
val2="another text"
if [ $val1 \> $val2 ]
then
echo "$val1 is greater than $val2"
else
echo "$val1 is less than $val2"
fi
ΠΠΎΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ ΡΠΊΡΠΈΠΏΡΠ°.
Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΡΡΠΎΠΊ, Π²ΡΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΠΊΡΠΈΠΏΡ, Ρ ΠΎΡΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ, Π²ΡΠ΄Π°ΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅:
./myscript: line 5: [: too many arguments
ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ ΡΡΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ, Π·Π°ΠΊΠ»ΡΡΠΈΠΌ $val2
Π² Π΄Π²ΠΎΠΉΠ½ΡΠ΅ ΠΊΠ°Π²ΡΡΠΊΠΈ:
#!/bin/bash
val1=text
val2="another text"
if [ $val1 \> "$val2" ]
then
echo "$val1 is greater than $val2"
else
echo "$val1 is less than $val2"
fi
Π’Π΅ΠΏΠ΅ΡΡ Π²ΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠ°ΠΊ Π½Π°Π΄ΠΎ.
Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΡΡΠΎΠΊ
ΠΡΡ ΠΎΠ΄Π½Π° ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² Β«>Β» ΠΈ Β«<Β» Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ Π² Π²Π΅ΡΡ Π½Π΅ΠΌ ΠΈ Π½ΠΈΠΆΠ½Π΅ΠΌ ΡΠ΅Π³ΠΈΡΡΡΠ°Ρ . ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ ΡΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ, ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΠΌ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» Ρ ΡΠ°ΠΊΠΈΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ:
Likegeeks
likegeeks
Π‘ΠΎΡ
ΡΠ°Π½ΠΈΠΌ Π΅Π³ΠΎ, Π΄Π°Π² ΠΈΠΌΡ myfile
, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅ ΡΠ°ΠΊΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
sort myfile
ΠΠ½Π° ΠΎΡΡΠΎΡΡΠΈΡΡΠ΅Ρ ΡΡΡΠΎΠΊΠΈ ΠΈΠ· ΡΠ°ΠΉΠ»Π° ΡΠ°ΠΊ:
likegeeks
Likegeeks
ΠΠΎΠΌΠ°Π½Π΄Π° sort
, ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΡΠΎΡΡΠΈΡΡΠ΅Ρ ΡΡΡΠΎΠΊΠΈ ΠΏΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ, ΡΠΎ Π΅ΡΡΡ ΡΡΡΠΎΡΠ½Π°Ρ Π±ΡΠΊΠ²Π° Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΠ΅Π½ΡΡΠ΅ ΠΏΡΠΎΠΏΠΈΡΠ½ΠΎΠΉ. Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΠΌ ΡΠΊΡΠΈΠΏΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ ΡΠ΅ ΠΆΠ΅ ΡΡΡΠΎΠΊΠΈ:
#!/bin/bash
val1=Likegeeks
val2=likegeeks
if [ $val1 \> $val2 ]
then
echo "$val1 is greater than $val2"
else
echo "$val1 is less than $val2"
fi
ΠΡΠ»ΠΈ Π΅Π³ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ, ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ Π²ΡΡ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ β ΡΡΡΠΎΡΠ½Π°Ρ Π±ΡΠΊΠ²Π° ΡΠ΅ΠΏΠ΅ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΡΠΎΠΏΠΈΡΠ½ΠΎΠΉ.
ΠΠΎΠΌΠ°Π½Π΄Π° sort ΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΡΡΠΎΠΊ Π² ΡΠ°ΠΉΠ»Π΅ ΡΡΠ΅Π½Π°ΡΠΈΡ
Π ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠΏΠΈΡΠ½ΡΠ΅ Π±ΡΠΊΠ²Ρ ΠΌΠ΅Π½ΡΡΠ΅ ΡΡΡΠΎΡΠ½ΡΡ . Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΡΡΠΎΠΊ Π·Π΄Π΅ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΡΡΡΠΌ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ASCII-ΠΊΠΎΠ΄ΠΎΠ² ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΊΠΎΠ΄ΠΎΠ² ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².
ΠΠΎΠΌΠ°Π½Π΄Π° sort
, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ, Π·Π°Π΄Π°Π½Π½ΡΠΉ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ
ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°.
ΠΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²
ΠΠΎΠΆΠ°Π»ΡΠΉ, Π½ΠΈΠΆΠ΅ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² bash-ΡΠΊΡΠΈΠΏΡΠ°Ρ ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ. ΠΠ½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ, ΠΊΠ°ΡΠ°ΡΡΠΈΠ΅ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ². ΠΠΎΡ ΡΠΏΠΈΡΠΎΠΊ ΡΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄.
-d file
ΠΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π»ΠΈ ΡΠ°ΠΉΠ», ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΠΎΠ½ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠ΅ΠΉ.-e file
ΠΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π»ΠΈ ΡΠ°ΠΉΠ».-f file
ΠΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π»ΠΈ ΡΠ°ΠΉΠ», ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΠΎΠ½ ΡΠ°ΠΉΠ»ΠΎΠΌ.-r file
ΠΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π»ΠΈ ΡΠ°ΠΉΠ», ΠΈ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π»ΠΈ ΠΎΠ½ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ.-s file Π
ΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π»ΠΈ ΡΠ°ΠΉΠ», ΠΈ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΠΎΠ½ ΠΏΡΡΡΡΠΌ.-w file
ΠΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π»ΠΈ ΡΠ°ΠΉΠ», ΠΈ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π»ΠΈ ΠΎΠ½ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ.-x file
ΠΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π»ΠΈ ΡΠ°ΠΉΠ», ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΌ.file1 -nt file2
ΠΡΠΎΠ²Π΅ΡΡΠ΅Ρ, Π½ΠΎΠ²Π΅Π΅ Π»ΠΈfile1
, ΡΠ΅ΠΌfile2
.file1 -ot file2
ΠΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΡΡΠ°ΡΡΠ΅ Π»ΠΈfile1
, ΡΠ΅ΠΌfile2
.-O file
ΠΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π»ΠΈ ΡΠ°ΠΉΠ», ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ Π΅Π³ΠΎ Π²Π»Π°Π΄Π΅Π»ΡΡΠ΅ΠΌ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.-G file
ΠΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π»ΠΈ ΡΠ°ΠΉΠ», ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π»ΠΈ Π΅Π³ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π³ΡΡΠΏΠΏΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π³ΡΡΠΏΠΏΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΊΠ°ΠΊ Π²ΠΏΡΠΎΡΠ΅ΠΌ, ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΠ΅ ΡΠ΅Π³ΠΎΠ΄Π½Ρ, Π½Π΅ΡΠ»ΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΡ. ΠΡ ΠΈΠΌΠ΅Π½Π°, ΡΠ²Π»ΡΡΡΡ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΎΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ»ΠΎΠ², ΠΏΡΡΠΌΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ ΠΈΠΌΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ.
ΠΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΠΎΠ΄Π½Ρ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅:
#!/bin/bash
mydir=/home/likegeeks
if [ -d $mydir ]
then
echo "The $mydir directory exists"
cd $ mydir
ls
else
echo "The $mydir directory does not exist"
fi
ΠΡΠΎΡ ΡΠΊΡΠΈΠΏΡ, Π΄Π»Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, Π²ΡΠ²Π΅Π΄Π΅Ρ Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅.
ΠΡΠ²ΠΎΠ΄ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ
ΠΠΎΠ»Π°Π³Π°Π΅ΠΌ, Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ, Π²ΡΠ΅ ΠΎΠ½ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΏΠΎ ΡΠΎΠΌΡ ΠΆΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ.
ΠΡΠΎΠ³ΠΈ
Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΌΡ ΡΠ°ΡΡΠΊΠ°Π·Π°Π»ΠΈ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΡΠΈΡΡΡΠΏΠΈΡΡ ΠΊ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ bash-ΡΠΊΡΠΈΠΏΡΠΎΠ² ΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π±Π°Π·ΠΎΠ²ΡΠ΅ Π²Π΅ΡΠΈ. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΡΠ΅ΠΌΠ° bash-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ³ΡΠΎΠΌΠ½Π°. ΠΡΠ° ΡΡΠ°ΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΎΠΌ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠ°ΡΡΠΈ Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠ΅ΡΠΈΠΈ ΠΈΠ· 11 ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ². ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΡ ΠΏΡΡΠΌΠΎ ΡΠ΅ΠΉΡΠ°Ρ β Π²ΠΎΡ ΡΠΏΠΈΡΠΎΠΊ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΠΎΠ² ΡΡΠΈΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ². ΠΠ»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° ΡΡΠ΄Π° Π²ΠΊΠ»ΡΡΡΠ½ ΠΈ ΡΠΎΡ, ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΏΡΠΎΡΠ»ΠΈ.
- Bash Script Step By Step β Π·Π΄Π΅ΡΡ ΡΠ΅ΡΡ ΠΈΠ΄ΡΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π½Π°ΡΠ°ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ bash-ΡΠΊΡΠΈΠΏΡΠΎΠ², ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΠΎΠΏΠΈΡΠ°Π½Ρ ΡΡΠ»ΠΎΠ²Π½ΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ, Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ, ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΡΠΈΡΠ΅Π», ΡΡΡΠΎΠΊ, Π²ΡΡΡΠ½Π΅Π½ΠΈΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΠΉ ΠΎ ΡΠ°ΠΉΠ»Π°Ρ .
- Bash Scripting Part 2, Bash the awesome β ΡΡΡ ΡΠ°ΡΠΊΡΡΠ²Π°ΡΡΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠΈΠΊΠ»Π°ΠΌΠΈ for ΠΈ while.
- Bash Scripting Part 3, Parameters & options β ΡΡΠΎΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΏΠΎΡΠ²ΡΡΡΠ½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΈ ΠΊΠ»ΡΡΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΡΠΊΡΠΈΠΏΡΠ°ΠΌ, ΡΠ°Π±ΠΎΡΠ΅ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π²ΠΎΠ΄ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΈ ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΈΡΠ°ΡΡ ΠΈΠ· ΡΠ°ΠΉΠ»ΠΎΠ².
- Bash Scripting Part 4, Input & Output β Π·Π΄Π΅ΡΡ ΡΠ΅ΡΡ ΠΈΠ΄ΡΡ ΠΎ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠ°Ρ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π½ΠΈΠΌΠΈ, ΠΎ ΠΏΠΎΡΠΎΠΊΠ°Ρ Π²Π²ΠΎΠ΄Π°, Π²ΡΠ²ΠΎΠ΄Π°, ΠΎΡΠΈΠ±ΠΎΠΊ, ΠΎ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ Π²ΡΠ²ΠΎΠ΄Π°.
- Bash Scripting Part 5, Sighals & Jobs β ΡΡΠΎΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΏΠΎΡΠ²ΡΡΡΠ½ ΡΠΈΠ³Π½Π°Π»Π°ΠΌ Linux, ΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ Π² ΡΠΊΡΠΈΠΏΡΠ°Ρ , Π·Π°ΠΏΡΡΠΊΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² ΠΏΠΎ ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΡ.
- Bash Scripting Part 6, Functions β ΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ·Π½Π°ΡΡ ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ Π² ΡΠΊΡΠΈΠΏΡΠ°Ρ , ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ.
- Bash Scripting Part 7, Using sed β ΡΡΠ° ΡΡΠ°ΡΡΡ ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π° ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΠΌ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠΎΠΌ sed.
- Bash Scripting Part 8, Using awk β Π΄Π°Π½Π½ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΏΠΎΡΠ²ΡΡΡΠ½ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΡΠ·ΡΠΊΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ awk.
- Bash Scripting Part 9, Regular Expressions β ΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΈΡΠ°ΡΡ ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π² bash-ΡΠΊΡΠΈΠΏΡΠ°Ρ .
- Bash Scripting Part 10, Practical Examples β Π·Π΄Π΅ΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ ΠΏΡΠΈΡΠΌΡ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ, Π° ΡΠ°ΠΊ ΠΆΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΠ° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° Π΄ΠΈΡΠΊΠ°.
- Bash Scripting Part 11, Expect Command β ΡΡΠΎΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΏΠΎΡΠ²ΡΡΡΠ½ ΡΡΠ΅Π΄ΡΡΠ²Ρ Expect, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠΌΠΈ ΡΡΠΈΠ»ΠΈΡΠ°ΠΌΠΈ. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Π·Π΄Π΅ΡΡ ΠΈΠ΄ΡΡ ΡΠ΅ΡΡ ΠΎΠ± expect-ΡΠΊΡΠΈΠΏΡΠ°Ρ ΠΈ ΠΎΠ± ΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΈ Ρ bash-ΡΠΊΡΠΈΠΏΡΠ°ΠΌΠΈ ΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ.
ΠΠΎΠ»Π°Π³Π°Π΅ΠΌ, ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΠ΅Π½Π½ΡΡ ΡΠ²ΠΎΠΉΡΡΠ² ΡΡΠΎΠΉ ΡΠ΅ΡΠΈΠΈ ΡΡΠ°ΡΠ΅ΠΉ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½Π°, Π½Π°ΡΠΈΠ½Π°ΡΡΡ Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ, ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ, ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ Π²Π΅Π΄ΡΡ ΠΊ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ΅ΡΡΡΠ·Π½ΡΠΌ ΡΠ΅ΠΌΠ°ΠΌ, Π΄Π°Π²Π°Ρ ΡΠ°Π½Ρ Π²ΡΠ΅ΠΌ ΠΆΠ΅Π»Π°ΡΡΠΈΠΌ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΡΡ Π² Π΄Π΅Π»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Linux.
Π£Π²Π°ΠΆΠ°Π΅ΠΌΡΠ΅ ΡΠΈΡΠ°ΡΠ΅Π»ΠΈ! ΠΡΠΎΡΠΈΠΌ Π³ΡΡΡ bash-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π΄ΠΎΠ±ΡΠ°Π»ΠΈΡΡ Π΄ΠΎ Π²Π΅ΡΡΠΈΠ½ ΠΌΠ°ΡΡΠ΅ΡΡΡΠ²Π°, ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΡΠ΅ΠΊΡΠ΅ΡΠ°ΠΌΠΈ, Π° ΠΎΡ ΡΠ΅Ρ , ΠΊΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π½Π°ΠΏΠΈΡΠ°Π» ΡΠ²ΠΎΠΉ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠΊΡΠΈΠΏΡ, ΠΆΠ΄ΡΠΌ Π²ΠΏΠ΅ΡΠ°ΡΠ»Π΅Π½ΠΈΠΉ.
ΠΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠΊΡΠΈΠΏΡ: 9-ΡΠΈ ΡΠ°Π³ΠΎΠ²Π°Ρ ΡΡ Π΅ΠΌΠ° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ° Ρ Π½ΡΠ»Ρ — ΠΠΎΡΠ°Π Π°ΡΡΠΈ
08 ΠΠΎΡ ΠΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠΊΡΠΈΠΏΡ: 9-ΡΠΈ ΡΠ°Π³ΠΎΠ²Π°Ρ ΡΡ Π΅ΠΌΠ° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ° Ρ Π½ΡΠ»Ρ
ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ: 22:26
Π ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ: Π₯ΠΎΠ»ΠΎΠ΄Π½ΡΠ΅ Π·Π²ΠΎΠ½ΠΊΠΈ ΠΈ ΠΏΡΠΎΠ΄Π°ΠΆΠΈ ΠΏΠΎ ΡΠ΅Π»Π΅ΡΠΎΠ½Ρ
ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»: admin
ΠΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠΊΡΠΈΠΏΡ ΠΏΡΠΎΠ΄Π°ΠΆ? Π’Π°ΠΊΠΈΠΌ Π²ΠΎΠΏΡΠΎΡΠΎΠΌ Π·Π°Π΄Π°Π΅ΡΡΡ, Π½Π°Π²Π΅ΡΠ½ΠΎΠ΅, ΠΊΠ°ΠΆΠ΄ΡΠΉ, ΠΊΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΠΏΡΠΎΠ΄Π°ΠΆΠ°Ρ . Π ΡΡΠΎ Π½Π΅ΡΠ΄ΠΈΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ β Π²Π΅Π΄Ρ Ρ ΠΎΡΠΎΡΠΈΠΉ ΡΠΊΡΠΈΠΏΡ ΠΏΡΠΎΠ΄Π°ΠΆ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΠ°ΠΌ Π±ΡΡΡΡΠ΅Π΅ ΠΈ Π»Π΅Π³ΡΠ΅ ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ², ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ°ΠΌ ΠΏΡΠ΅ΠΎΠ΄ΠΎΠ»Π΅Π²Π°ΡΡ Π²ΠΎΠ·ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π½Π° Π²ΠΎΠΏΡΠΎΡΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΏΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Π΅ΠΉ. ΠΠ»ΡΡΡ ΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ° ΠΎΡΠ΅Π²ΠΈΠ΄Π½Ρ.
ΠΠΎ Π΅ΡΡΡ ΠΈ ΠΎΠ±ΡΠ°ΡΠ½Π°Ρ ΡΡΠΎΡΠΎΠ½Π°.
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΊΡΠΈΠΏΡΠ° ΠΏΡΠΎΠ΄Π°ΠΆ β Π·Π°Π½ΡΡΠΈΠ΅ Π½Π΅ ΠΏΡΠΎΡΡΠΎΠ΅. Π ΡΡΠ°ΡΡΠ΅ Β«3 ΡΠΏΠΎΡΠΎΠ±Π° Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΈ ΠΎΡΠΎΡΠΌΠΈΡΡ ΡΠΊΡΠΈΠΏΡ ΠΏΡΠΎΠ΄Π°ΠΆΒ» Ρ ΡΠΆΠ΅ Π΄Π΅Π»ΠΈΠ»ΡΡ Ρ ΠΠ°ΠΌΠΈ ΡΠ²ΠΎΠΈΠΌ ΠΌΠ½Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ ΡΠΊΡΠΈΠΏΡΠ° (ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ, Π±ΡΠΌΠ°ΠΆΠ½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ).
Π‘Π΅Π³ΠΎΠ΄Π½Ρ Ρ Ρ ΠΎΡΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΡΡ ΠΠ°ΠΌ ΡΡ Π΅ΠΌΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ° β 9 ΡΠ°Π³ΠΎΠ²ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ° Ρ Π½ΡΠ»Ρ (ΡΠ΅ΡΡ ΠΈΠ΄Π΅Ρ ΠΏΡΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΊΡΠΈΠΏΡΠ° Ρ ΠΎΠ»ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π·Π²ΠΎΠ½ΠΊΠ°. ΠΠ»Ρ Π΄ΡΡΠ³ΠΈΡ Π²ΠΈΠ΄ΠΎΠ² Π·Π²ΠΎΠ½ΠΊΠΎΠ² Π°Π»Π³ΠΎΡΠΈΡΠΌ Π±ΡΠ΄Π΅Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌ Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΠΎΠ²ΠΊΠ°ΠΌΠΈ). ΠΠΎΠ³Π΄Π° Ρ ΡΠΎΠ·Π΄Π°Ρ ΡΠΊΡΠΈΠΏΡΡ ΠΏΡΠΎΠ΄Π°ΠΆ Π΄Π»Ρ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ², Ρ ΡΠ°ΠΌ ΠΎΠΏΠΈΡΠ°ΡΡΡ Π½Π° ΡΡΠΎΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ.
Π― ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΠ» Π°Π»Π³ΠΎΡΠΈΡΠΌ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ PDF. Π‘ΠΊΠ°ΡΠ°ΡΡ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ, ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π² Π΄ΠΎΡΡΡΠΏ ΡΠ΅ΡΠ΅Π· (Π½Π°ΠΆΠ°ΡΡ Π½Π° Π»ΡΠ±ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ ΡΠΎΡΡΠ΅ΡΠ΅ΠΉ).
[sociallocker id=Β»17542β³]
[/sociallocker]
ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π³ Ρ ΠΎΠΏΠΈΡΠ°Π» Π² ΡΡΠΈΡ Π²ΠΈΠ΄Π΅ΠΎ:
ΠΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠΊΡΠΈΠΏΡ ΠΏΡΠΎΠ΄Π°ΠΆ: ΡΠ°Π³ 1-5 (Π²ΠΈΠ΄Π΅ΠΎ)
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ°Π³ΠΈ ΠΏΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΡΠΊΡΠΈΠΏΡΠ°.
1. ΠΠ°ΡΠ½ΠΈ Ρ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
ΠΡΠΎΡ ΡΠ°Π³ (ΠΊ ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π½Π΅Π·Π½Π°ΠΊΠΎΠΌΡΠΉ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Ρ) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π° Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΡΠ°ΠΏΠ΅Β ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π±Π°Π·Ρ Π½Π°ΡΠΈΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΏΠ΅ΡΡΠΏΠ΅ΠΊΡΠΈΠ²Π½ΡΡ ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ Π΄Π»Ρ Π½Π°Ρ ΠΈ Π½Π° ΠΌΠ΅Π½Π΅Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ . ΠΠ° ΡΡΠΎΠΌ ΡΠ°Π³Π΅ Π²Π°ΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΊΡΠΈΡΠ΅ΡΠΈΠΈ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π΄Π»Ρ ΡΠ²ΠΎΠ΅ΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Ρ ΠΏΡΠΎΠ΄Π°Ρ ΡΡΠ΅Π½ΠΈΠ½Π³ΠΈ ΠΏΡΠΎΠ΄Π°ΠΆ, ΡΠΎ Π΄Π»Ρ ΠΌΠ΅Π½Ρ ΠΊΠ»ΠΈΠ΅Π½Ρ Ρ Π½Π°Π»ΠΈΡΠΈΠ΅ΠΌ ΠΎΡΠ΄Π΅Π»Π° ΠΏΡΠΎΠ΄Π°ΠΆ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΈ Π½Π΅ΠΎΠ±ΡΡΠ΅Π½Π½ΡΠΌΠΈ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°ΠΌΠΈ Π±ΡΠ΄Π΅Ρ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π΅Π΅, ΡΠ΅ΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ Π²ΠΎΠΎΠ±ΡΠ΅ Π±Π΅Π· ΠΎΡΠ΄Π΅Π»Π° ΠΏΡΠΎΠ΄Π°ΠΆ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΡ Π΄Π»Ρ ΡΠ΅Π±Ρ Π²ΡΠ΄Π΅Π»ΡΠ΅ΠΌ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² Π, B, C ΠΈ Π΄Π°Π»Π΅Π΅ ΠΏΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π΄Π»Ρ ΠΠ°ΡΠ΅Π³ΠΎ Π±ΠΈΠ·Π½Π΅ΡΠ°. ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΡΠΎΡ Π²Π°ΠΆΠ½ΡΠΉ ΡΠ°Π³ Ρ ΡΠ°Π·Π±ΠΈΡΠ°Π» Π½Π° ΠΎΠ½Π»Π°ΠΉΠ½-ΡΡΠ΅Π½ΠΈΠ½Π³ Π‘ΠΊΡΠΈΠΏΡΡ ΠΏΡΠΎΠ΄Π°ΠΆ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΡΡΡΠ΅Π»ΠΈΠ²Π°ΡΡ (Π·Π΄Π΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΎΡΡΠ΅Ρ Ρ ΡΡΠ΅Π½ΠΈΠ½Π³Π°), Π½ΠΎ Π΄ΡΠΌΠ°Ρ Π»ΠΎΠ³ΠΈΠΊΠ° ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΠ°ΠΌ ΠΏΠΎΠ½ΡΡΠ½Π°.
2. ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈ ΡΠ΅Π»Π΅Π²ΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅
ΠΠ° ΡΡΠΎΠΌ ΡΠ°Π³Π΅ Π²Π°ΠΆΠ½ΠΎ ΡΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² ΡΠ΅ ΡΠ΅Π»Π΅Π²ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ Π½Π°ΠΌ Π²ΡΠ³ΠΎΠ΄Π½Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌΠΈ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ Π ΠΌΡ Π³ΠΎΡΠΎΠ²Ρ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ Π½Π° ΡΠ΅ΡΡΠΈΡΠΎΡΠΈΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° (Ρ.ΠΊ. ΠΎΠ½ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠ΅ΡΡΠΏΠ΅ΠΊΡΠΈΠ²Π½ΡΠ΅, ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ Π΄Π»Ρ Π½Π°Ρ. ΠΡ Π³ΠΎΡΠΎΠ²Ρ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π² ΡΠ°ΠΊΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ²), Π° Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌΠΈ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ Π‘, ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠΎΠΉ Π½Π° ΡΠ°ΡΡΡΠ»ΠΊΡ.
3. ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈ ΠΠΠ Β
ΠΠΠ β Π»ΠΈΡΠΎ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠ΅Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅. ΠΡΠΎ Π² ΠΠ°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΠ°ΠΌΠΈ? Π§Π°ΡΡΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΡ Π½Π°ΠΏΡΠΎΠ»ΠΎΠΌ ΠΏΡΠΎΠ±ΠΈΠ²Π°ΡΡΡΡ ΠΊ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ, Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, ΡΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΈΡ Π²ΠΎΠΏΡΠΎΡΡ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π΄ΡΡΠ³ΠΎΠΉ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ. ΠΡΠΎ Π²Π°ΠΆΠ½ΡΠΉ ΡΠ°Π³, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°ΠΏΡΡΠΌΡΡ Π²Π»ΠΈΡΠ΅Ρ Π½Π° Π½Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π°ΡΠ΅Π³ΠΎ ΡΠΊΡΠΈΠΏΡΠ° ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌΠΈ ΡΠ΅ΡΠ΅Π²ΡΠΌΠΈ ΠΎΠ±ΠΎΡΠΎΡΠ°ΠΌΠΈ.
4. ΠΠ°ΠΏΠΎΠ»Π½ΠΈ ΡΠ°ΡΠ³Π΅Ρ-Π»ΠΈΡΡ
Π’Π°ΡΠ³Π΅Ρ-Π»ΠΈΡΡ β ΡΡΠΎ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ Π΄Π»Ρ ΠΏΡΠΈΠ²Π»Π΅ΡΠ΅Π½ΠΈΡ. Π― ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ ΠΈΠΌΠ΅ΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΠ΅Ρ , ΠΊΠΎΠΌΡ ΠΡ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ½ΠΈΡΡΒ ΡΠΆΠ΅ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ°.
5. ΠΡΠΎΠ΄ΡΠΌΠ°ΠΉ Π²ΡΡ ΠΎΠ΄ Π½Π° ΠΠΠ
Π§ΡΠΎ ΠΡ ΡΠΊΠ°ΠΆΠ΅ΡΠ΅ ΡΠ΅ΠΊΡΠ΅ΡΠ°ΡΡ, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΠΠ°Ρ ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΠ» Ρ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΌ. ΠΠ½Π΅ ΠΎΠ±ΡΡΠ½ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ 2-3 ΡΠ΅Ρ Π½ΠΈΠΊΠΈ ΡΡΠΎΠ±Ρ ΠΎΠ±ΠΎΠΉΡΠΈ ΠΏΠΎΡΡΠΈ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΠ΅ΡΠ°ΡΡ. Π ΠΊΡΡΡΠ΅ 10 Π·Π²ΠΎΠ½ΠΊΠΎΠ² β 10 ΠΏΡΠΎΠ΄Π°ΠΆ Ρ ΠΎ ΡΠ°ΠΊΠΈΡ ΡΠ΅Ρ Π½ΠΈΠΊΠ°Ρ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Ρ.
6.Β ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΡΡ Π»ΠΈΠ½ΠΈΡ ΡΠ°Π·Π³ΠΎΠ²ΠΎΡΠ° Ρ ΠΠΠ
ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅, ΡΡΠΎ ΠΠ°Ρ ΡΠ°Π·Π³ΠΎΠ²ΠΎΡ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ Π³Π»Π°Π΄ΠΊΠΎ. ΠΠ»ΠΈΠ΅Π½Ρ Π½Π΅ Π²ΠΎΠ·ΡΠ°ΠΆΠ°Π΅Ρ. ΠΠΎΠ΄ΡΠΌΠ°ΠΉΡΠ΅, Ρ ΡΠ΅Π³ΠΎ ΠΡ Π½Π°ΡΠ½Π΅ΡΠ΅ Π±Π΅ΡΠ΅Π΄Ρ, ΠΊΠ°ΠΊ ΡΡΠ΅ΠΏΠ»ΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ°ΠΊΡ, ΠΊΠ°ΠΊ Π±ΡΠ΄Π΅ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ. Π― ΠΎΠ±ΡΡΠ½ΠΎ Π²ΡΠ΄Π΅Π»ΡΡ 4 ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΡ Π² ΡΡΠΎΠΌ Π±Π»ΠΎΠΊΠ΅, ΠΎ ΠΊΠΎΡΠΎΡΡΡ ΡΠ°ΡΡΠΊΠ°ΠΆΡ Π² Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ (ΡΠ΅Ρ Π½ΠΈΠΊΠ° Β«ΠΠ£Π£ΠΒ»).
7. ΠΠΎΠ±Π°Π²Ρ Π²Π΅ΡΠ²ΠΈΡΡΠΎΡΡΡ
Π‘ΠΊΡΠΈΠΏΡ ΠΏΡΠΎΠ΄Π°ΠΆ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ ΡΠ°Π·Π½ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ². ΠΠ½ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ³Π»Π°ΡΠΈΡΡΡΡ Ρ ΠΠ°ΠΌΠΈ ΡΡΠ°Π·Ρ (Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΠ°ΡΠ° ΠΈΠ΄Π΅Π°Π»ΡΠ½Π°Ρ Π»ΠΈΠ½ΠΈΡ ΡΠ°Π·Π³ΠΎΠ²ΠΎΡΠ°), Π»ΠΈΠ±ΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΈ Π²ΠΎΠ·ΡΠ°ΠΆΠ°ΡΡ. ΠΠ° 7 ΡΠ°Π³Π΅ Π²Π°ΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΎΡΠΊΠ°Π·Ρ ΠΈ ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΊΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. Π― ΠΎΠ±ΡΡΠ½ΠΎ Π²ΡΠ΄Π΅Π»ΡΡ Π²ΠΎΠ·ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠ΅ (ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΡΠ²ΠΈΡΡΡΡ Π½Π° Π»ΡΠ±ΠΎΠΌ ΡΠ·Π»Π΅ ΡΠΊΡΠΈΠΏΡΠ°) ΠΈ ΡΠ·Π»ΠΎΠ²ΡΠ΅ (ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΡΠ²ΠΈΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΡΠ·Π»Π΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ°). ΠΡΠ΅ΠΎΠ΄ΠΎΠ»Π΅ΡΡ Π»ΡΠ±ΡΠ΅ Π²ΠΎΠ·ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΠ°ΠΌ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΠΊΡΡΡ Π₯Π°ΠΊΠ΅Ρ Π²ΠΎΠ·ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. Π’Π°ΠΌ Π΅ΡΡΡ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΏΡΠΈΠ΅ΠΌΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π»ΡΠ±ΡΡ Π²ΠΎΠ·ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ.
8. ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΡΠΉ ΡΠΊΡΠΈΠΏΡ
ΠΠ° ΡΡΠΎΠΌ ΡΠ°Π³Π΅ Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΊΡΠΈΠΏΡ ΠΏΡΠΎΠ΄Π°ΠΆ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π·Π°Π³ΠΎΡΠΎΠ²ΠΊΠΈ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΡΠΊΡΠ΅Π»Π΅Π²ΡΠΊΠΈΠΉ ΡΠ°Π±Π»ΠΎΠ½ Π² ΠΊΡΡΡΠ΅ ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² ΠΏΡΠΎΠ΄Π°ΠΆ), Π»ΠΈΠ±ΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ² (ΠΌΠ½Π΅ Π½ΡΠ°Π²ΠΈΡΡΡ Π‘ΠΊΡΠΈΠΏΡΠΠΈΠ·Π°ΠΉΠ½Π΅Ρ).
9. Π£Π»ΡΡΡΠ°ΠΉ!
Π‘Π»Π΅Π΄ΠΈΡΠ΅ Π·Π° ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΠ΅ΠΉ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ·Π»Π°, ΡΠΊΡΠΈΠΏΡΠ° Π² ΡΠ΅Π»ΠΎΠΌ, ΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΡΠ°Π·Π½ΡΠ΅ ΠΎΡΠ²Π΅ΡΡ Π½Π° Π²ΠΎΠ·ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΠΏΠΎΡΠΎΠ±Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. Π Ρ ΠΠ°Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ ΡΠ±ΠΎΠΉΠ½ΡΠΉ ΡΠΊΡΠΈΠΏΡ ΠΏΡΠΎΠ΄Π°ΠΆ!
Π‘ ΡΠ²Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΠ»Π΅Π³ (Π΄ΡΡΠΆΠΈΡΡ Π² ΠΠ, ΠΈΠ½ΡΡΠ°Π³ΡΠ°ΠΌ)
P.s. ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² Ρ ΡΠ°Π·ΠΎΠ±ΡΠ°Π» Π½Π° ΠΎΠ½Π»Π°ΠΉΠ½-ΡΡΠ΅Π½ΠΈΠ½Π³Π΅ (ΡΠΎΡΠ½Π΅Π΅ β Π²ΠΎΡΠΊΡΠΎΠΏΠ΅) Π‘ΠΊΡΠΈΠΏΡΡ ΠΏΡΠΎΠ΄Π°ΠΆ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΡΡΡΠ΅Π»ΠΈΠ²Π°ΡΡ. ΠΠΎΡΠΌΠΎΡΡΠΈΡΠ΅Β ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΡΠΎΡΠ»ΠΎ ΠΌΠ΅ΡΠΎΠΏΡΠΈΡΡΠΈΠ΅, ΠΊΠ°ΠΊΠΈΠ΅ Π²ΡΠ²ΠΎΠ΄Ρ Ρ ΡΠ΄Π΅Π»Π°Π» Π΄Π»Ρ ΡΠ΅Π±Ρ Π² Ρ ΠΎΠ΄Π΅ ΠΎΠ±ΡΠ΅Π½ΠΈΡ Ρ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠ°ΠΌΠΈ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΈ Π΄Π»Ρ ΠΠ°Ρ ΠΈ ΠΠ°ΡΠ΅ΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ.
ΠΠΎΠ»Π΅Π·Π½ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ:
ΠΡΠ½ΠΎΠ²Ρ BASH. Π§Π°ΡΡΡ 1 / Habr
ΠΠ΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΎ, Π²ΡΠ΅ ΡΠ΅ ΠΊΡΠΎ ΠΎΠ±ΡΠ°Π΅ΡΡΡ Ρ ΠΠ‘ Linux Ρ
ΠΎΡΡ ΡΠ°Π· Π΄Π° ΠΈΠΌΠ΅Π»ΠΈ Π΄Π΅Π»ΠΎ(Π²ΠΎ Π²ΡΡΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ»ΡΡΠ°Π»ΠΈ ΡΠΎΡΠ½ΠΎ) Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΎΠΉ BASH. ΠΠΎ BASH Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π½Π°Ρ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ°, ΡΡΠΎ Π΅ΡΠ΅ ΠΈ ΠΏΡΠ΅Π²ΠΎΡΡ
ΠΎΠ΄Π½ΡΠΉ ΡΠΊΡΠΈΠΏΡΠΎΠ²ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
Π¦Π΅Π»Ρ ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠΈ β ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡ ΠΏΠΎΠ±Π»ΠΈΠΆΠ΅ ΡΠ·Π΅ΡΠΎΠ² Ρ bash, ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ ΠΏΡΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ, ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΡΠΈΠ΅ΠΌΡ ΠΈ ΡΠΈΡΠΊΠΈ ΡΠ·ΡΠΊΠ°, Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Π΄Π°ΠΆΠ΅ ΠΎΠ±ΡΡΠ½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΌΠΎΠ³ Π±ΡΡΡΡΠ΅Π½ΡΠΊΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΊΡΠΈΠΏΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎΠΉ(-Π½Π΅Π΄Π΅Π»ΡΠ½ΠΎΠΉ, -ΠΌΠ΅ΡΡΡΠ½ΠΎΠΉ) ΡΡΡΠΈΠ½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΠΈΠ»ΠΈ, ΡΠΊΠ°ΠΆΠ΅ΠΌ, Β«Π½Π° ΠΊΠΎΠ»Π΅Π½ΠΊΠ΅Β» Π½Π°Π²Π°ΡΡΡ ΡΠΊΡΠΈΠΏΡΠΈΠΊ Π΄Π»Ρ Π±ΡΠΊΠ°ΠΏΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ.
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
BASH β Bourne-Again SHell (ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡΡΡ ΠΊΠ°ΠΊ Β«ΠΏΠ΅ΡΠ΅ΡΠΎΠΆΠ΄Π΅Π½Π½ΡΠΉ ΡΠ΅Π»Β», ΠΈΠ»ΠΈ Β«Π‘Π½ΠΎΠ²Π° ΡΠ΅Π» ΠΠΎΡΠ½Π°(ΡΠΎΠ·Π΄Π°ΡΠ΅Π»Ρ sh)Β»), ΡΠ°ΠΌΡΠΉ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Π² ΡΠ½ΠΈΠΊΡΠΎΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , Π² ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ Π² GNU/Linux. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Ρ ΡΡΠ΄ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ²ΠΎΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ².
break Π²ΡΡ
ΠΎΠ΄ ΠΈΠ· ΡΠΈΠΊΠ»Π° for, while ΠΈΠ»ΠΈ until
continue Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΈΠΊΠ»Π° for, while ΠΈΠ»ΠΈ until
echo Π²ΡΠ²ΠΎΠ΄ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π½ΡΡ
ΠΏΡΠΎΠ±Π΅Π»Π°ΠΌΠΈ, Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π²ΡΠ²ΠΎΠ΄Π°
exit Π²ΡΡ
ΠΎΠ΄ ΠΈΠ· ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ
export ΠΎΡΠΌΠ΅ΡΠ°Π΅Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π² Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ Π² ΡΡΠ΅Π΄Π΅
hash Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ ΠΏΠΎΠ»Π½ΡΠ΅ ΠΈΠΌΠ΅Π½Π° ΠΏΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄, ΡΠΊΠ°Π·Π°Π½Π½ΡΡ
Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², ΡΡΠΎΠ±Ρ Π½Π΅ ΠΈΡΠΊΠ°ΡΡ ΠΈΡ
ΠΏΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ
kill ΠΏΠΎΡΡΠ»Π°Π΅Ρ ΡΠΈΠ³Π½Π°Π» Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΡ
pwd Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³
read ΡΠΈΡΠ°Π΅Ρ ΡΡΡΠΎΠΊΡ ΠΈΠ· Π²Π²ΠΎΠ΄Π° ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΅Π΅ Π΄Π»Ρ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ.\
return Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ Π²ΡΠΉΡΠΈ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ
shift ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅Ρ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π½Π°Π»Π΅Π²ΠΎ
test Π²ΡΡΠΈΡΠ»ΡΠ΅Ρ ΡΡΠ»ΠΎΠ²Π½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
times Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΎΠΉ ΠΈ Π΅Π΅ ΠΏΠΎΡΠΎΠΌΠΊΠ°ΠΌΠΈ
trap ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΎΠΉ ΡΠΈΠ³Π½Π°Π»Π°
unset Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ
wait ΠΆΠ΄Π΅Ρ Π²ΡΡ
ΠΎΠ΄Π° ΠΈΠ· Π΄ΠΎΡΠ΅ΡΠ½Π΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ Π²ΡΡ
ΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅.
Π ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅ ΠΊΡΠΎΠΌΠ΅ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ
ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅Π»ΡΡ ΠΊΡΡΡ Π²Π½Π΅ΡΠ½ΠΈΡ
, ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
ΠΊΠΎΠΌΠ°Π½Π΄-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΌΡ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠΌΡΡ ΡΠΆΠ΅ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅
Π§ΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°ΡΡ Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ Π½Π°ΡΠ°Π»Π°
1. ΠΡΠ±ΠΎΠΉ bash-ΡΠΊΡΠΈΠΏΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ ΡΠΎ ΡΡΡΠΎΠΊΠΈ:
#!/bin/bash
Π² ΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΏΠΎΡΠ»Π΅ #! ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΡΡΡ ΠΊ bash-ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π΅ΡΠ»ΠΈ ΠΎΠ½ Ρ Π²Π°Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅(Π³Π΄Π΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ·Π½Π°ΡΡ Π½Π°Π±ΡΠ°Π² whereis bash) ΠΏΠΎΠΌΠ΅Π½ΡΠΉΡΠ΅ Π΅Ρ Π½Π° Π²Π°Ρ ΠΏΡΡΡ.
2. ΠΠΎΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ ΡΠΈΠΌΠ²ΠΎΠ»Π° # (ΠΊΡΠΎΠΌΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ).
3. Π bash ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΡΠΈΠΏΠ°(ΠΎ Π½ΠΈΡ
ΡΠ΅ΡΡ ΠΏΠΎΠΉΠ΄Π΅Ρ Π½ΠΈΠΆΠ΅)
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠΊΡΠΈΠΏΡΠ°
ΠΡΠΈΠ²Π΅Π΄Ρ ΠΊΠ°ΠΊ ΠΏΡΠΈΠΌΠ΅Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ:
#!/bin/bash
#ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ Π³Π΄Π΅ Ρ Π½Π°Ρ Ρ
ΡΠ°Π½ΠΈΡΡΡ bash-ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ
parametr1=$1 #ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ parametr1 Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΠΊΡΠΈΠΏΡΠ°
script_name=$0 #ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ script_name Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ ΡΠΊΡΠΈΠΏΡΠ°
echo "ΠΡ Π·Π°ΠΏΡΡΡΠΈΠ»ΠΈ ΡΠΊΡΠΈΠΏΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ $script_name ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ $parametr1" # ΠΊΠΎΠΌΠ°Π½Π΄Π° echo Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΡΡΠΎΠΊΡ, ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π· $ΠΈΠΌΡ_ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ.
echo 'ΠΡ Π·Π°ΠΏΡΡΡΠΈΠ»ΠΈ ΡΠΊΡΠΈΠΏΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ $script_name ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ $parametr1' # Π·Π΄Π΅ΡΡ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠ°Π²ΡΡΠΊΠΈ, ΡΠ°Π·Π½ΠΈΡΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ Π² ΠΎΠ΄ΠΈΠ½Π°ΡΠ½ΡΡ
ΠΊΠ°Π²ΡΡΠΊΠ°Ρ
Π½Π΅ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
.
exit 0 #ΠΡΡ
ΠΎΠ΄ Ρ ΠΊΠΎΠ΄ΠΎΠΌ 0 (ΡΠ΄Π°ΡΠ½ΠΎΠ΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ ΡΠΊΡΠΈΠΏΡΠ°)
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ°:
ite@ite-desktop:~$ ./test.sh qwerty
ΠΡ Π·Π°ΠΏΡΡΡΠΈΠ»ΠΈ ΡΠΊΡΠΈΠΏΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ./test.sh ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ qwerty
ΠΡ Π·Π°ΠΏΡΡΡΠΈΠ»ΠΈ ΡΠΊΡΠΈΠΏΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ $script_name ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ $parametr1
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΌΡ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠ»ΠΈΡΡ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΡΠΊΡΠΈΠΏΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, Π²ΡΠ΅ΠΌΡ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ:
$DIRSTACK - ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π²Π΅ΡΡΠΈΠ½Ρ ΡΡΠ΅ΠΊΠ° ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ²
$EDITOR - ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
$EUID - ΠΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ UID. ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ su Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΎΡ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΡΠΎ ΡΡΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ UID ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ...
$UID - ...ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ΅Π°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ Π»ΠΎΠ³ΠΈΠ½Π΅.
$FUNCNAME - ΠΈΠΌΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΡΠΊΡΠΈΠΏΡΠ΅.
$GROUPS - ΠΌΠ°ΡΡΠΈΠ² Π³ΡΡΠΏΠΏ ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
$HOME - Π΄ΠΎΠΌΠ°ΡΠ½ΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
$HOSTNAME - Π²Π°Ρ hostname
$HOSTTYPE - Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΌΠ°ΡΠΈΠ½Ρ.
$LC_CTYPE - Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ, ΠΊΠΎΡΠΎΡΠΎΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²
$OLDPWD - ΠΏΡΠ΅ΠΆΠ½ΠΈΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³
$OSTYPE - ΡΠΈΠΏ ΠΠ‘
$PATH - ΠΏΡΡΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ
$PPID - ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°
$SECONDS - Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΡΠΊΡΠΈΠΏΡΠ°(Π² ΡΠ΅ΠΊ.)
$# - ΠΎΠ±ΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΡ
ΡΠΊΡΠΈΠΏΡΡ
$* - Π²ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½ΡΠ½Π΅ ΡΠΊΡΠΈΠΏΡΡ(Π²ΡΠ²ΠΎΠ΄ΡΡΡΡ Π² ΡΡΡΠΎΠΊΡ)
$@ - ΡΠΎΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, ΡΡΠΎ ΠΈ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ, Π½ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π²ΡΠ²ΠΎΠ΄ΡΡΡΡ Π² ΡΡΠΎΠ»Π±ΠΈΠΊ
$! - PID ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ Π·Π°ΠΏΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π² ΡΠΎΠ½Π΅ ΠΏΡΠΎΡΠ΅ΡΡΠ°
$$ - PID ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡΠ°
Π£ΡΠ»ΠΎΠ²ΠΈΡ
Π£ΡΠ»ΠΎΠ²Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ, Π΄ΡΠΌΠ°Ρ, Π·Π½Π°ΠΊΠΎΠΌΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ, ΠΊΡΠΎ Ρ
ΠΎΡΡ ΡΠ°Π· ΠΏΡΡΠ°Π»ΡΡ Π½Π° ΡΠ΅ΠΌ-ΡΠΎ ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π bash ΡΡΠ»ΠΎΠ²ΠΈΡ ΠΏΠΈΡΡΡΡΡ ΡΠ»Π΅Π΄. ΠΎΠ±ΡΠ°Π·ΠΎΠΌ (ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅):
#!/bin/bash
source=$1 #Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ source Π·Π°ΡΠΎΠ²ΡΠ²Π°Π΅ΠΌ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠΊΡΠΈΠΏΡΠ°
dest=$2 #Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ dest Π·Π°ΡΠΎΠ²ΡΠ²Π°Π΅ΠΌ Π²ΡΠΎΡΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠΊΡΠΈΠΏΡΠ°
if [[ «$source» -eq «$dest» ]] # Π² ΠΊΠΎΠ²ΡΡΠΊΠ°Ρ
ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
Π΄Π»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ. -eq — Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡΠΈΠ΅ «ΡΠ°Π²Π½Ρ»
then # Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°Π²Π½Ρ, ΡΠΎ
echo «ΠΡΠΈΠΌΠ΅Π½ΠΈΠΊ $dest ΠΈ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ $source ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΡΠ°ΠΉΠ»!» #Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅, Ρ.ΠΊ. $source ΠΈ $dest Ρ Π½Π°Ρ ΡΠ°Π²Π½Ρ
exit 1 # Π²ΡΡ
ΠΎΠ΄ΠΈΠΌ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ (1 — ΠΊΠΎΠ΄ ΠΎΡΠΈΠ±ΠΊΠΈ)
else # Π΅ΡΠ»ΠΈ ΠΆΠ΅ ΠΎΠ½ΠΈ Π½Π΅ ΡΠ°Π²Π½Ρ
cp $source $dest # ΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ cp: ΠΊΠΎΠΏΠΈΡΡΠ΅ΠΌ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ Π² ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊ
echo «Π£Π΄Π°ΡΠ½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅!»
fi #ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅ΠΌ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ.
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ°:ite@ite-desktop:~$ ./primer2.sh 1 1
ΠΡΠΈΠΌΠ΅Π½ΠΈΠΊ 1 ΠΈ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ 1 ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΡΠ°ΠΉΠ»!
ite@ite-desktop:~$ ./primer2.sh 1 2
Π£Π΄Π°ΡΠ½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅!
Π‘ΡΡΡΠΊΡΡΡΠ° if-then-else ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
if <ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΠ»ΠΈ Π½Π°Π±ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠΈΡ
ΠΊΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°(0 ΠΈΠ»ΠΈ 1)>
then
<Π΅ΡΠ»ΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅ if ΠΈΡΡΠΈΠ½ΠΎ, ΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΡΠΎΡ Π±Π»ΠΎΠΊ>
else
<Π΅ΡΠ»ΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅ if Π»ΠΎΠΆΠ½ΠΎ, ΡΠΎΡ ΡΡΠΎΡ>
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠΈΡ
ΠΊΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΠΌΠΎΠ³ΡΡ Π²ΡΡΡΡΠΏΠ°ΡΡ ΡΡΡΡΠΊΡΡΡΡ [[ , [ , test, (( )) ΠΈΠ»ΠΈ Π»ΡΠ±Π°Ρ Π΄ΡΡΠ³Π°Ρ(ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ) linux-ΠΊΠΎΠΌΠ°Π½Π΄Π°.
test — ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ. ΠΏΠΎΡΠ»Π΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π½Π΅ΠΎΡΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠ° Π·Π°ΠΊΡΡΠ²Π°ΡΡΠ°Ρ ΡΠΊΠΎΠ±ΠΊΠ° «]»
[ — ΡΠΈΠ½ΠΎΠ½ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ test
[[ — ΡΠ°ΡΡΠΈΡΠ΅Π½Π½Π°Ρ Π²Π΅ΡΡΠΈΡ «[» (Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π²Π΅ΡΡΠΈΠΈ 2.02)(ΠΊΠ°ΠΊ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅), Π²Π½ΡΡΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ || (ΠΈΠ»ΠΈ), & (ΠΈ). ΠΠΎΠ»Π½Π° ΠΈΠΌΠ΅ΡΡ Π·Π°ΠΊΡΡΠ²Π°ΡΡΡΠ± ΡΠΊΠΎΠ±ΠΊΡ «]]»
(( )) — ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅.
Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎΡΡΡΡΠ½ΡΡ
ΡΡΠ»ΠΎΠ²ΠΈΠΉ Π²ΠΈΠ΄Π°:if ...
then ....
else
if ....
then....
else ....
Π΄Π»Ρ ΠΊΡΠ°ΡΠΊΠΎΡΡΠΈ ΠΈ ΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΠΈ ΠΊΠΎΠ΄Π°, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΡΠΊΡΡΡΡ:if ..
then ...
elif ...
then ...
elif ...
Π£ΡΠ»ΠΎΠ²ΠΈΡ. ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΉ Π²ΡΠ±ΠΎΡ
ΠΡΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ ΠΊΠ°ΠΊΠΎΡΡ-ΡΠΎ ΠΎΠ΄Π½Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΡΠΎ ΡΠ΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½Π΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ case.#!/bin/bash
echo "ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠ΅Π΄Π°ΡΠΎΡ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ°:"
echo "1 ΠΠ°ΠΏΡΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ nano"
echo "2 ΠΠ°ΠΏΡΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ vi"
echo "3 ΠΠ°ΠΏΡΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ emacs"
echo "4 ΠΡΡ
ΠΎΠ΄"
read doing #Π·Π΄Π΅ΡΡ ΠΌΡ ΡΠΈΡΠ°Π΅ΠΌ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ $doing ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°
case $doing in
1)
/usr/bin/nano # Π΅ΡΠ»ΠΈ $doing ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ 1, ΡΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ nano
;;
2)
/usr/bin/vi # Π΅ΡΠ»ΠΈ $doing ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ 2, ΡΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ vi
;;
3)
/usr/bin/emacs # Π΅ΡΠ»ΠΈ $doing ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ 3, ΡΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ emacs
;;
4)
exit 0
;;
*) #Π΅ΡΠ»ΠΈ Π²Π²Π΅Π΄Π΅Π½ΠΎ Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΡΠΎ, ΡΡΠΎ Π² case Π½Π΅ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
echo "ΠΠ²Π΅Π΄Π΅Π½ΠΎ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅"
esac #ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° case.
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΡ:ite@ite-desktop:~$ ./menu2.sh
ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠ΅Π΄Π°ΡΠΎΡ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ°:
1 ΠΠ°ΠΏΡΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ nano
2 ΠΠ°ΠΏΡΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ vi
3 ΠΠ°ΠΏΡΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ emacs
4 ΠΡΡ
ΠΎΠ΄
ΠΠΎΡΠ»Π΅ Π²ΡΠ±ΠΎΡ ΡΠΈΡΡΡ ΠΈ Π½Π°ΠΆΠ°ΡΠΈΡ Enter Π·Π°ΠΏΡΡΡΠΈΡΡΡΡ ΡΠΎΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Π²ΡΠ±ΡΠ°Π»ΠΈ(Π΅ΡΠ»ΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ Π²ΡΠ΅ ΠΏΡΡΠΈ ΡΠΊΠ°Π·Π°Π½Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, ΠΈ Ρ Π²Π°Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ ΡΡΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΡ π )
ΠΡΠ²Π΅Π΄Ρ ΡΠΏΠΈΡΠΎΠΊ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ if-then-else-fi:-z # ΡΡΡΠΎΠΊΠ° ΠΏΡΡΡΠ°
-n # ΡΡΡΠΎΠΊΠ° Π½Π΅ ΠΏΡΡΡΠ°
=, (==) # ΡΡΡΠΎΠΊΠΈ ΡΠ°Π²Π½Ρ
!= # ΡΡΡΠΎΠΊΠΈ Π½Π΅ΡΠ°Π²Π½Ρ
-eq # ΡΠ°Π²Π½ΠΎ
-ne # Π½Π΅ΡΠ°Π²Π½ΠΎ
-lt,(< ) # ΠΌΠ΅Π½ΡΡΠ΅
-le,(<=) # ΠΌΠ΅Π½ΡΡΠ΅ ΠΈΠ»ΠΈ ΡΠ°Π²Π½ΠΎ
-gt,(>) #Π±ΠΎΠ»ΡΡΠ΅
-ge,(>=) #Π±ΠΎΠ»ΡΡΠ΅ ΠΈΠ»ΠΈ ΡΠ°Π²Π½ΠΎ
! #ΠΎΡΡΠΈΡΠ°Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ
-a,(&&) #Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Β«ΠΒ»
-o,(||) # Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Β«ΠΠΠΒ»
Π‘ ΠΎΡΠ½ΠΎΠ²Π°ΠΌΠΈ ΡΠ·ΡΠΊΠ° ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡΠΌΠΈ ΠΌΡ ΡΠ°Π·ΠΎΠ±ΡΠ°Π»ΠΈΡΡ, ΡΡΠΎΠ±Ρ Π½Π΅ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ°ΡΡ ΡΡΠ°ΡΡΡ, ΡΠ°Π·ΠΎΠ±ΡΡ Π΅Ρ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΡΠ΅ΠΉ(Π΄ΠΎΠΏΡΡΡΠΈΠΌ Π½Π° 3). ΠΠΎ Π²ΡΠΎΡΠΎΠΉ ΡΠ°ΡΡΠΈ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΡΠΈΠΊΠ»Π° ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ.
UPD: ΠΡΠΏΡΠ°Π²ΠΈΠ» Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ
UPD: ΠΠ±Π½ΠΎΠ²ΠΈΠ» ΡΠ°ΡΡΡ ΠΏΡΠΎ ΡΡΠ»ΠΎΠ²ΠΈΡ if-then-else
Π‘ΡΠ°ΡΡΠΈ Π½Π° unix-admin.su
Π±ΡΡΡΡΠΎΠ΅ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΡΡΡΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² Π½Π° Scheme (+ ΠΏΠ°ΠΊΠ΅ΡΠ½Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ) / Habr
ΠΡΡΡΠΏΠ»Π΅Π½ΠΈΠ΅
Π ΡΡΠ°ΡΡΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΊΠ°Π·Π°Π½ΠΎ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π² ΠΊΡΠ°ΡΡΠ°ΠΉΡΠΈΠ΅ ΡΡΠΎΠΊΠΈ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ ΠΎΡΠ½ΠΎΠ²Π°ΠΌΠΈ ΡΠΊΡΠΈΠΏΡΠΈΠ½Π³Π° Π² GIMP Π½Π° ΡΠ·ΡΠΊΠ΅ Scheme ΠΈ ΠΏΡΠΈΡΡΡΠΏΠΈΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΊ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΡΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ Π·Π°Π΄Π°Ρ. ΠΠ°Π½Π½ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π»ΠΈΡΡ Π΄Π»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠΈΠ½Π½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π·Π΄Π΅ΡΡ ΠΈ ΡΠ΅ΠΉΡΠ°Ρ, Π½Π΅ ΡΠΈΠ»ΡΠ½ΠΎ Π²Π΄Π°Π²Π°ΡΡΡ Π² ΡΠΎΠ½ΠΊΠΎΡΡΠΈ ΠΈ Π½Π΅ ΠΆΠ΅ΡΡΠ²ΡΡ Π΄ΡΠ°Π³ΠΎΡΠ΅Π½Π½ΡΠΌ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ. Π’Π°ΠΊΠΆΠ΅, ΡΡΠ°ΡΡΡ Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠΎΡΠΎΠ±ΠΈΡ ΠΏΠΎ Scheme ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΎΡ Script-fu. Π‘Π²ΡΠ·Π°Π½ΠΎ ΡΡΠΎ Ρ ΡΠΏΡΠΎΡΡΠ½Π½ΡΠΌ ΡΡΠΈΠ»Π΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π΅ ΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ΠΌ ΠΎΡΠ²Π΅ΡΠ΅Π½ΠΈΡ Π΄ΡΡΠ³ΠΈΡ Π½Π΅ΠΌΠ°Π»ΠΎΠ²Π°ΠΆΠ½ΡΡ ΡΠ°ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°Ρ ΡΠ΅ΠΉΡΠ°Ρ Π²ΠΎΠ»Π½ΡΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΌΠ΅Π½ΡΡΠ΅, ΡΠ΅ΠΌ ΡΠΊΠΎΡΠΎΡΡΡ ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΡ.
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅:
- Π§ΡΠΎ Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ?
- ΠΠΎΡΠΎΡΠΊΠΎ ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅
- ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅
- Π€ΡΠ½ΠΊΡΠΈΠΈ
- Π‘ΠΏΠΈΡΠΊΠΈ
- Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ ΡΠΊΡΠΈΠΏΡΠ° Π² GIMP
- ΠΠ°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°
- ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π§ΡΠΎ Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ?
ΠΠ½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ: Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ Β«LANGΒ» ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ Β«enΒ». ΠΠ°ΡΠ΅ΠΌ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ? ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ
, ΡΠ°ΠΊ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΠ΅ ΠΈΡΠΊΠ°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. ΠΠΎ-Π²ΡΠΎΡΡΡ
, ΠΌΠ½Π΅ Π½Π΅ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π° Π΄Π²ΡΡ
ΡΠ·ΡΠΊΠ°Ρ
. Π-ΡΡΠ΅ΡΡΠΈΡ
, Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅ Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ.
ΠΠΎΠ½ΡΠΎΠ»Ρ Script-fu: Filters β Script-fu β Console. ΠΠ΄Π΅ΡΡ ΠΌΡ ΡΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΊΡΡΠΎΡΠΊΠΈ ΠΊΠΎΠ΄Π°, β ΡΠΎ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΈ ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΠΈ ΡΠ·ΡΠΊΠ°.
ΠΠ±ΠΎΠ·ΡΠ΅Π²Π°ΡΠ΅Π»Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡ: Help β Procedure Browser. ΠΠ΄Π΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· ΠΎΡΠΎΠ±ΠΎΠ³ΠΎ ΡΡΡΠ΄Π° Π½Π°ΠΉΡΠΈ ΡΡΠ½ΠΊΡΠΈΡ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΈ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ (Π²ΡΡ Ρ
ΠΎΡΠΎΡΠΎ Π·Π°Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΎ).
Π Π΅Π΄Π°ΠΊΡΠΎΡ ΠΊΠΎΠ΄Π° Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΊΠΎΠΉ ΠΈ/ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΡΡΡΡΠΎΠΌ ΠΏΠ°ΡΠ½ΡΡ
ΡΠΊΠΎΠ±ΠΎΠΊ. ΠΡΡΠ°Π²Π»Ρ Π½Π° Π²Π°Ρ Π²ΠΊΡΡ. ΠΠ½Π΅ Ρ
Π²Π°ΡΠΈΠ»ΠΎ Notepad++. ΠΠΎ ΡΡΡΠΈΡΠ΅, ΡΠΊΠΎΠ±ΠΎΠΊ Π±ΡΠ΄Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ!
Π Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠ΅ΠΊΡΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ Π²ΡΠ΄Π΅ΡΠΆΠΊΠΈ ΠΈΠ· ΠΏΠ΅ΡΠ²ΡΡ ΡΠ΅ΡΡΡΠ΅Ρ ΡΡΡΠ°Π½ΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Script-fu ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΡΠ΅Π±ΡΡΠΈΠ½Ρ. ΠΠ°ΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ Π½ΠΈΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ.
ΠΠΎΡΠΎΡΠΊΠΎ ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅
- ΠΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² Scheme Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½Ρ ΡΠΊΠΎΠ±ΠΊΠ°ΠΌΠΈ.
- ΠΠΌΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΡΠ΅Π³Π΄Π° ΠΈΠ΄ΡΡ ΠΏΠ΅ΡΠ²ΡΠΌ Π² ΡΠΊΠΎΠ±ΠΊΠ°Ρ , Π° Π·Π°ΡΠ΅ΠΌ ΠΈΠ΄ΡΡ Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ.
- ΠΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ.
Π‘Π°ΠΌΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΏΡΠΈΠΌΠ΅Ρ:
(* (+ 1 2) (sqrt (- 13 4)) 10)
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΡΠΈΡΠ°Π½ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΡΡΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°: ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΡΠ½Ρ ΠΈΠ· ΡΠ°Π·Π½ΠΎΡΡΠΈ ΠΈ ΡΠΈΡΠ»ΠΎ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΊΠΎΠ±ΠΎΠΊ: ΠΎΠ½ΠΈ Π·Π΄Π΅ΡΡ Π²Π΅Π·Π΄Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Ρ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΌΠ΅ΡΠ°ΡΡ, Π½ΠΎ Π·Π°ΡΠΎ Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΡΡΠΎΜ Π·Π° ΡΠ΅ΠΌ Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ.
- Π€ΡΠ½ΠΊΡΠΈΡ ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΎΡΠ΄Π΅Π»Π΅Π½Ρ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π° ΠΏΡΠΎΠ±Π΅Π»Π°ΠΌΠΈ.
ΠΡΠΈΠΌΠ΅Ρ: Β«(+ 1 2)
Β» β ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΉ ΠΊΠΎΠ΄, Β«(+1 2)
Β» β Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΊΠΎΠ²ΡΠΌ.
- ΠΡΡ, ΡΡΠΎ ΠΈΠ΄Π΅Ρ Π·Π° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ Β«
;
Β», ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΌ ΠΈ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΡΡΡ.
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π² Scheme ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ let*
. ΠΠ±ΡΠΈΠΉ Π²ΠΈΠ΄:
(let*
(
(ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅)
...
(ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅)
)
(Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅)
...
(Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅)
)
ΠΡΠ»ΠΈ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ Ρ ΠΈΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠΌΠΈ ΡΠ·ΡΠΊΠ°ΠΌΠΈ, ΡΠΎ ΡΡΠΎ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
. ΠΠ½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΠΏΠΎΡΠ»Π΅ ΡΠΊΠΎΠ±ΠΊΠΈ, Π·Π°ΠΊΡΡΠ²Π°ΡΡΠ΅ΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ let*
, ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΡΠ°ΡΡ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ.
ΠΡΠΈΠΌΠ΅Ρ:
(let*
(
(a 1)
(b (+ a 2))
)
(+ a b)
)
ΠΡΡ ΠΏΡΠΈΠΌΠ΅Ρ:
(let*
( (x 9) )
(sqrt x)
)
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π΄Π°ΠΆΠ΅ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ, Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ Π΄Π»Ρ ΡΠΏΠΈΡΠΊΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π½Π΅ ΠΎΠΏΡΡΠΊΠ°ΡΡΡΡ!
ΠΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ set!
:
(set! ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅)
ΠΡΠΈΠΌΠ΅Ρ:
(let*
( (a 42) (b 21) (x 0) )
(set! x (/ a b))
)
Π€ΡΠ½ΠΊΡΠΈΠΈ
Π‘Π²ΠΎΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ define
:
(define (ΠΈΠΌΡ_ΡΡΠ½ΠΊΡΠΈΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ) ΠΊΠΎΠ΄_ΡΡΠ½ΠΊΡΠΈΠΈ)
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ Π±ΡΠ΄Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΠΊΠΎΠ΄Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ.
Π Π΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ (). ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ abs
, Π½ΠΎ ΠΌΡ ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΡΡΡΡ ΡΠ»ΠΎΠΆΠ½Π΅Π΅:
(define (difference x y)
(if (< x 0) (set! x (- x)))
(if (< y 0) (set! y (- y)))
(if (> x y) (- x y) (- y x))
)
ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ if
, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΠΈΡΡΠΈΠ½Π½ΠΎΡΡΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠ²ΠΎΠ΅Π³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΡΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π»ΠΈΠ±ΠΎ Π²ΡΠΎΡΠΎΠΉ, Π»ΠΈΠ±ΠΎ ΡΡΠ΅ΡΠΈΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ (ΠΏΡΠΈΡΡΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ΄Π΅ΡΡ, Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»Π΅Π½).
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΡΠΎ ΡΠ²ΠΎΠΈΠΌΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΊΠ°ΠΊ Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ, Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΠΎΠ½Π° Π»ΠΈΡΡ ΠΈΡ
ΠΊΠΎΠΏΠΈΠΈ. Π ΡΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
(let* ((a 3) (b -4)) (list (difference a b) a b))
(Π€ΡΠ½ΠΊΡΠΈΡ list
Π·Π΄Π΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² β Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ a
ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ b
, β Π° ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎ ΡΠΏΠΈΡΠΊΠ°Ρ
ΠΌΡ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ Π½ΠΈΠΆΠ΅). ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅, ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈΡΡ.
Π‘ΠΏΠΈΡΠΊΠΈ
Π§ΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ (Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π·Π°ΠΏΡΡΡΡ ):
'(0 1 1 2 3 5 8 13)
ΠΡΡΡΠΎΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ ΠΊΠ°ΠΊ ΡΠ΅ΡΠ΅Π· Β«'()
Β», ΡΠ°ΠΊ ΠΈ ΡΠ΅ΡΠ΅Π· Β«()
Β». Π‘ΠΏΠΈΡΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΊΠ°ΠΊ Π°ΡΠΎΠΌΠ°ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΡΠ°ΠΊ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠΈ:
(let*
(
(x
'("GIMP" (1 2 3) ("is" ("great" () ) ) )
)
)
x
)
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ΄ΠΈΠ½ Π°ΠΏΠΎΡΡΡΠΎΡ ΠΌΡ ΡΠΆΠ΅ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ, Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠΈ ΠΏΡΠ΅Π΄Π²Π°ΡΡΡΡ ΠΈΠΌ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ.
Π§ΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊ Π½Π°ΡΠ°Π»Ρ ΡΠΏΠΈΡΠΊΠ° Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, Π½ΡΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½Π°ΡΠΈΠΈ cons
:
(cons 1 '(2 3 4) )
ΠΠ½Π° ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ Ρ
ΠΎΡΠΎΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈ Ρ ΠΏΡΡΡΡΠΌΠΈ ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ (Β«(cons 1 () )
Β» Π΄Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°).
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ°Π½Π΅Π΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΡ
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
, ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ list
:
(let* ( (a 1) (b 2) (c 3) )
(list a b c 4 5)
)
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ ΡΠ°Π·Π½ΠΈΡΡ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠΏΠΈΡΠΊΠ° ΡΠ΅ΡΠ΅Π· Π°ΠΏΠΎΡΡΡΠΎΡ, Π·Π°ΠΌΠ΅Π½ΠΈΡΠ΅ Β«(list a b c 4 5)
Β» Π½Π° Β«'(a b c 4 5)
Β» ΠΈ ΡΡΠ°Π²Π½ΠΈΡΠ΅ Π²ΡΠ²ΠΎΠ΄.
ΠΡΠΎ Π²ΡΡ Ρ
ΠΎΡΠΎΡΠΎ, Π° ΠΊΠ°ΠΊ ΠΆΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠΏΠΈΡΠΊΠ°? ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π΅ΡΡΡ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ΅ΡΠ²Π°Ρ, car
, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π³ΠΎΠ»ΠΎΠ²Ρ ΡΠΏΠΈΡΠΊΠ°, ΡΠΎ Π΅ΡΡΡ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ. ΠΡΠΎΡΠ°Ρ, cdr
, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Ρ
Π²ΠΎΡΡ ΡΠΏΠΈΡΠΊΠ°, ΡΠΎ Π΅ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊΡΠΎΠΌΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ. ΠΠ±Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡΡ, ΡΡΠΎ ΡΠΏΠΈΡΠΎΠΊ Π½Π΅ΠΏΡΡΡ. ΠΡΠΈΠΌΠ΅ΡΡ:
(car '(1 2 3 4) )
(cdr '(1 2 3 4) )
(car '(1) )
(cdr '(1) )
ΠΠΌΠ΅ΡΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° car
ΠΈ cdr
Π±ΡΠ²Π°Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΡΠΈΠΏΠ° caadr
, cddr
ΠΈ Ρ.ΠΏ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π²ΡΠΎΡΠΎΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΏΠΈΡΠΊΠ°, Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
(cadr '("first" "second") )
ΡΡΠΎ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ
(car (cdr '("first" "second") ) )
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Π΄ΠΎΠ±ΡΠ°ΡΡΡΡ Π΄ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° 3, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π²Π° Π²ΡΠ·ΠΎΠ²Π° ΡΠ°ΠΊΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ:
(let* ( (
x '( (1 2 (3 4 5) 6) 7 8 (9 10) )
) )
; Π·Π΄Π΅ΡΡ Π²Π°Ρ ΠΊΠΎΠ΄
)
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ, Π·Π½Π°ΡΠΈΡ, Π²Ρ ΡΠΆΠ΅ ΠΏΠΎΡΡΠΈ Π³ΠΎΡΠΎΠ²Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ²ΠΎΠΉ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠΊΡΠΈΠΏΡ.
Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ ΡΠΊΡΠΈΠΏΡΠ° Π² GIMP
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΡΠ°Π΄ΠΈΡΡΡΡ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠΌ ΡΠ΅Π±Π΅ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΠ΄ΠΎΠ±Π½ΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ.
ΠΠ»Ρ ΡΠΊΡΠΈΠΏΡΠΎΠ² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ GIMP ΡΠΎΠ·Π΄Π°Π΅Ρ Π² Π΄ΠΎΠΌΠ°ΡΠ½Π΅ΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΠΏΠ°ΠΏΠΊΡ .gimp-2.6/scripts
. Π§ΡΠΎΠ±Ρ ΡΠΊΡΠΈΠΏΡ ΠΏΠΎΠ΄ΡΠ΅ΠΏΠΈΠ»ΡΡ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π² Π½Π΅Ρ scm-ΡΠ°ΠΉΠ» ΠΈ Π² ΠΌΠ΅Π½Ρ GIMP Π²ΡΠ±ΡΠ°ΡΡ Filters β Script-fu β Refresh Scripts (ΡΡΠΎ Π΅ΡΠ»ΠΈ GIMP ΡΠΆΠ΅ Π·Π°ΠΏΡΡΠ΅Π½, Π° ΠΈΠ½Π°ΡΠ΅ ΠΎΠ½ ΡΠ°ΠΌ Π²ΡΡ Π·Π°Π³ΡΡΠ·ΠΈΡ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅).
Π ΡΠ°ΠΉΠ», ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, Π½Π°Π΄ΠΎ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π½Π°ΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ. Π Π½ΡΠΌ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡΡ ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ, Π½ΠΎ Π½Π΅ΠΏΠ»ΠΎΡ
ΠΎ Π±Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΡΠ°Π·Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°Π·Π½Π΅ΡΡΠΈ ΠΏΠΎ ΡΠ°Π·Π½ΡΠΌ ΡΠ°ΠΉΠ»Π°ΠΌ, Π° ΡΠ°ΠΉΠ»Ρ Π½Π°Π·Π²Π°ΡΡ Π² ΡΠ΅ΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ. ΠΡΡ ΠΎΠ΄Π½Π° ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡ, Π΄Π°ΠΆΠ΅ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅: ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Π½Π°ΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡΡΡΡ ΠΏΠΎ ΡΠΈΠΏΡ script-fu-functionname
.
ΠΠΎ Π±ΠΎΠ»ΡΡΠΎΠΌΡ ΡΡΡΡΡ, ΡΡΠΎΠ³ΠΎ ΡΠΆΠ΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡ Π½Π°ΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ· ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ.
ΠΠΎ Π΅ΡΠ»ΠΈ ΠΌΡ Ρ
ΠΎΡΠΈΠΌ, ΡΡΠΎΠ±Ρ Ρ ΡΠΊΡΠΈΠΏΡΠ° Π±ΡΠ»Π° ΡΠ²ΠΎΡ ΠΌΠ΅Π½ΡΡΠΊΠ°, ΠΈ ΠΏΡΠΈ Π΅Π³ΠΎ Π²ΡΠ·ΠΎΠ²Π΅ ΠΎΡΠΊΡΡΠ²Π°Π»ΠΎΡΡ ΠΎΠΊΠΎΡΠΊΠΎ Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΡΠΎ Π½Π°Π΄ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΎΡΠ²Π΅ΡΠ°ΡΡΠΈΠ΅ Π·Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ. Π ΡΡΡ Π½ΠΈΡΠ΅Π³ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²Π·Π³Π»ΡΠ½ΡΡΡ Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ.
ΠΡΡΡΡ ΠΌΡ Ρ ΠΎΡΠΈΠΌ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΡΠ»ΡΡΡΠ°ΡΡΡΡ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΠΊΡΡΠ° Π½Π° ΡΠ½ΠΈΠΌΠΊΠ΅ Ρ Π½Π΅ΡΠ°Π²Π½ΠΎΠΌΠ΅ΡΠ½ΠΎΠΉ ΠΎΡΠ²Π΅ΡΡΠ½Π½ΠΎΡΡΡΡ (Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Ρ Π΅Ρ ΡΠΆΠ΅ Π½Π°ΠΏΠΈΡΠ°Π», Π½ΠΎ ΡΡΠΎ Π½Π΅ ΠΌΠ΅ΡΠ°Π΅Ρ Π½Π°ΠΌ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π΅ΡΡ ΡΠ°Π·). ΠΠΎΡ Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅:
(define (script-fu-readability inImage inLayer inRadius inHigh-input))
ΠΠ½Π°Ρ-Π·Π½Π°Ρ, Π·Π΄Π΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΈ ΠΎΠ½Π° Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ. ΠΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠ΄ Π±ΡΠ΄Π΅Ρ ΡΡΡΡ ΠΏΠΎΠ·ΠΆΠ΅. Π‘Π΅ΠΉΡΠ°Ρ Π½Π°ΠΌ ΠΈ ΡΡΠΎΠ³ΠΎ Π²ΠΏΠΎΠ»Π½Π΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ. Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ ΠΆΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²ΠΎΡ ΡΠ°ΠΊ:
(script-fu-register
"script-fu-readability"
"Readability"
"Improves text readability on the photos. It's needed only when there is a non-uniform illumination"
"Dragonizer"
"Copyleft, use it at your own sweet will"
"January 7, 2011"
"RGB* GRAY* INDEXED*"
SF-IMAGE "The image" 0
SF-DRAWABLE "The layer" 0
SF-ADJUSTMENT "Median blur: radius" '(15 1 20 1 5 0 SF-SLIDER)
SF-ADJUSTMENT "Levels: intensity of highest input" '(235 0 255 1 10 0 SF-SPINNER)
)
(script-fu-menu-register "script-fu-readability" "<Image>/Filters/User's scripts")
Π ΠΏΠ΅ΡΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅. ΠΠ΅ΡΠ²ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ β ΠΈΠΌΡ Π½Π°ΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, Π²ΡΠΎΡΠΎΠΉ β ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΠΎΠ΅ ΠΈΠΌΡ, ΡΡΠ΅ΡΠΈΠΉ β ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅, ΡΠ΅ΡΠ²Π΅ΡΡΡΠΉ β Π°Π²ΡΠΎΡ, ΠΏΡΡΡΠΉ β ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΠΊΠΎΠΏΠΈΡΠ°ΠΉΡΠ΅, ΡΠ΅ΡΡΠΎΠΉ β Π΄Π°ΡΠ° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ. Π‘Π΅Π΄ΡΠΌΠΎΠΉ β ΡΠΈΠΏΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ (RGB, RGBA, GRAY, GRAYA, INDEXED, INDEXEDA).
ΠΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΡΠ²Π»ΡΡΡΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ. ΠΠ½ΠΈ (ΠΊΡΠΎΠΌΠ΅ SF-IMAGE
ΠΈ SF-DRAWABLE
) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡ Π² ΠΎΠΊΠΎΡΠΊΠ΅ ΡΠΊΡΠΈΠΏΡΠ° Π²ΠΈΠ΄ΠΆΠ΅ΡΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡΡΡΠΎΡΠΊΠΈ, Π³Π°Π»ΠΊΠΈ, ΡΠ»Π°ΠΉΠ΄Π΅ΡΡ, ΡΠΏΠΈΠ½Π½Π΅ΡΡ, Π²ΡΠ±ΠΎΡ ΡΠ²Π΅ΡΠ°, ΡΡΠΈΡΡΠ° ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π²ΡΠ±ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² ΡΡΠ½ΠΊΡΠΈΡ. Π£ΠΏΠΎΠΌΡΠ½ΡΡΡΠΉ ΠΆΠ΅ SF-IMAGE
ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π½Π°ΠΌ ΡΡΡΠ»ΠΊΡ Π½Π° ΡΠ΅ΠΊΡΡΠ΅Π΅ ΠΎΡΠΊΡΡΡΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, Π° SF-DRAWABLE
β Π½Π° Π²ΡΠ±ΡΠ°Π½Π½ΡΠΉ ΡΠ»ΠΎΠΉ. Π― Π½Π΅ Π±ΡΠ΄Ρ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ Π²ΡΠ΅ ΡΡΠΈ SF-*
, ΠΈΡ
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π² ΡΠ°Π±Π»ΠΈΡΠ°Ρ
Π·Π΄Π΅ΡΡ (ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ°ΡΡ Π½Π΅ Π½ΡΠΆΠ½ΠΎ, ΠΈΠ±ΠΎ ΠΊΡΠ°ΡΠΊΠΎ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΎ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅). Π Π΅ΡΡ ΡΠΎΠ²Π΅ΡΡΡ ΠΏΠΎΠ³Π»ΡΠ΄Π΅ΡΡ Π²ΠΎΡ ΡΡΡ ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΠΆΠ΅ Π²Π°ΠΌ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ (Π²Π·ΡΠ» ΠΎΡΡΡΠ΄Π°).
ΠΠΊΠΎΡΠΊΠΎ Π³ΠΎΡΠΎΠ²ΠΎ, ΠΎΡΡΠ°Π»ΠΎΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΅Π³ΠΎ Π²ΡΠ·ΠΎΠ² Π² ΠΌΠ΅Π½Ρ GIMP, ΡΡΠΎ ΠΈ Π΄Π΅Π»Π°Π΅Ρ Π²ΡΠΎΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΊΠΎΠ΄Π° Π²ΡΡΠ΅. ΠΠ²Π° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°: ΠΎΠΏΡΡΡ ΠΆΠ΅, ΠΈΠΌΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΏΡΡΡ ΠΊ ΠΌΠ΅Π½Ρ. ΠΡΡΡ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ <Image>
, Π΅ΡΠ»ΠΈ ΠΊΠ°ΠΊΠΈΡ
-ΡΠΎ Π²Π΅ΡΠΎΠΊ ΡΠ°Π½Π΅Π΅ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π»ΠΎ, GIMP ΠΈΡ
Π΄ΠΎΠ±Π°Π²ΠΈΡ.
ΠΡΡ ΠΏΡΠΈΠΌΠ΅Ρ: Π΅ΡΠ»ΠΈ Π±Ρ ΠΌΡ Π·Π°Ρ
ΠΎΡΠ΅Π»ΠΈ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠΊΡΠΈΠΏΡ, ΡΠΎΠ·Π΄Π°ΡΡΠΈΠΉ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Ρ Π·Π°Π΄Π°Π½Π½ΡΠΌΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ, ΠΌΡ Π±Ρ ΡΠ±ΡΠ°Π»ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ SF-IMAGE
ΠΈ SF-DRAWABLE
ΠΈΠ· ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, Π²ΠΌΠ΅ΡΡΠΎ "RGB* GRAY* INDEXED*"
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π±Ρ ΠΏΡΡΡΡΡ ΡΡΡΠΎΠΊΡ ""
(Π½Π°ΠΌ Π²Π΅Π΄Ρ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΊΡΡΡΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΌΡ Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ), Π° Π²ΠΎ Π²ΡΠΎΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ Π±Ρ ΠΏΡΡΡ Π½Π° ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ "<Image>/File/Create/Something"
.
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΠ±ΠΎΠ²Π°ΡΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ, ΡΠΎΡ
ΡΠ°Π½ΠΈΠΌ Π½Π°ΡΠ΅ ΡΠ²ΠΎΡΡΠ΅ΡΡΠ²ΠΎ Π² Β«script-fu-readability.scm
Β» ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΠΌ ΡΠΊΡΠΈΠΏΡΡ. Π’Π΅ΠΏΠ΅ΡΡ ΠΎΡΠΊΡΠΎΠ΅ΠΌ/ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΊΠ°ΠΊΠΎΠ΅-Π½ΠΈΠ±ΡΠ΄Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π²ΡΠ±Π΅ΡΠ΅ΠΌ ΠΈΠ· ΠΌΠ΅Π½Ρ Π½Π°Ρ ΡΠΊΡΠΈΠΏΡ.
ΠΠ°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°
ΠΠΎΡ ΠΎΠ½, Π²ΠΎΠΆΠ΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ! ΠΠΎ ΠΏΠΎΡΠΏΠ΅ΡΡ ΡΠ°ΡΡΡΡΠΎΠΈΡΡ: Π½ΠΈΡΠ΅Π³ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ ΡΡΡ Π½Π΅Ρ. Π‘ΠΎΠ²ΡΠ΅ΠΌ. Π€ΡΠ½ΠΊΡΠΈΠΈ Π²Ρ ΡΠΆΠ΅ ΠΏΠΈΡΠ°ΡΡ ΡΠΌΠ΅Π΅ΡΠ΅. Π Π²ΡΡ, ΡΡΠΎ Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ ΠΎΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°, Π»Π΅Π³ΠΊΠΎ Π½Π°ΠΉΡΠΈ Π² ΠΎΠ±ΠΎΠ·ΡΠ΅Π²Π°ΡΠ΅Π»Π΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡ. ΠΡΠΆΠ½Π° ΠΊΠ°ΠΊΠ°Ρ-ΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΠΎ ΡΠ»ΠΎΡΠΌΠΈ? ΠΡΠΈΡΠ΅ ΠΏΠΎ Π·Π°ΠΏΡΠΎΡΡ Β«layer
Β». ΠΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅? ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΡΠΎ-ΡΠΎ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π΅ Β«invert
Β». Π ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅.
Π― ΡΠ΄Π΅Π»Π°Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π²Π° Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΡ:
- ΠΡΠ΅Π½Ρ Π½Π΅ΠΏΠ»ΠΎΡ
ΠΎ Π±Ρ Π·Π°ΠΊΠ»ΡΡΠΈΡΡ Π²ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ ΡΠΊΡΠΈΠΏΡΠΎΠΌ, ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ
gimp-image-undo-group-start
ΠΈgimp-image-undo-group-end
, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π½ΠΈΠΆΠ΅, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ ΠΏΡΠΈΡΠ»ΠΎΡΡ ΠΎΡΠΌΠ΅Π½ΡΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΠΎ-ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΡΡΠΈ. - ΠΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ GIMP Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΡΠΏΠΈΡΠΊΠΈ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π΄Π°Π½Π½ΡΡ
Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅. ΠΠ΅Π³ΠΊΠΎ ΠΏΡΠΎΠΊΠΎΠ»ΠΎΡΡΡΡ, ΠΎΠΆΠΈΠ΄Π°Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
layer
, Π° ΠΏΠΎΠ»ΡΡΠ°Ρ(layer)
. Π’Π°ΠΊ ΡΡΠΎ Π½Π΅ Π·Π°Π±ΡΠ²Π°ΠΉΡΠ΅ Π΄Π΅Π»Π°ΡΡcar
Π² ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ .
Π ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°. ΠΠ»Π³ΠΎΡΠΈΡΠΌ Ρ ΠΏΠΎΠ·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π» ΠΎΡΡΡΠ΄Π° (ΡΠΏΠ°ΡΠΈΠ±ΠΎ Killy).
(define (script-fu-readability inImage inLayer inRadius inHigh-input)
(let* (
(layer2 0)
)
(gimp-image-undo-group-start inImage)
(if (not (= (car (gimp-image-base-type inImage)) GRAY)) (gimp-image-convert-grayscale inImage))
(set! layer2 (car (gimp-layer-copy inLayer FALSE)))
(gimp-image-add-layer inImage layer2 -1)
(plug-in-despeckle RUN-NONINTERACTIVE inImage layer2 inRadius 0 -1 256)
(gimp-layer-set-mode layer2 DIFFERENCE-MODE)
(set! inLayer (car (gimp-image-flatten inImage)))
(gimp-invert inLayer)
(gimp-levels inLayer HISTOGRAM-VALUE 0 inHigh-input 0.1 0 255)
(gimp-image-undo-group-end inImage)
)
)
ΠΠΌΠ΅Ρ ΠΏΠΎΠ΄ ΡΡΠΊΠΎΠΉ Π±ΡΠ°ΡΠ·Π΅Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡ, ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π·Π΄Π΅ΡΡ Π½Π΅ΡΠ»ΠΎΠΆΠ½ΠΎ, Π΅ΡΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ.
ΠΠ°ΠΊΠ΅ΡΠ½Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°
ΠΡΠ΄Π°-ΠΊΡΠ΄Π°? ΠΡΠΎ Π΅ΡΡ Π½Π΅ Π²ΡΡ. ΠΡΠΌΠ°Π΅ΡΠ΅, ΠΌΡ ΡΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠ΄Π΅Π»Π°Π»ΠΈ, ΡΡΠΎΠ±Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ Π½Π΅ΡΡΠ°ΡΡΠ½ΡΠΉ ΡΠΊΡΠΈΠΏΡΠΈΠΊ, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΠΈΠΉ ΠΎΠ΄Π½Ρ ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ? ΠΠ° ΡΡΠΊΠ°ΠΌΠΈ Π±ΡΠ»ΠΎ Π±Ρ Π±ΡΡΡΡΠ΅Π΅! Π’Π°ΠΊ ΡΡΠΎ Π΄Π°Π²Π°ΠΉΡΠ΅ Π·Π°ΡΡΠ°Π²ΠΈΠΌ GIMP ΠΎΡΠΊΡΡΡΡ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈΠ· Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠΈ, ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π² Π΄ΡΡΠ³ΡΡ ΠΏΠ°ΠΏΠΊΡ.
Π‘Π°ΠΌΠΎΠ΅ ΠΏΡΠΈΡΡΠ½ΠΎΠ΅ β ΡΡΠΎΠ±Ρ ΠΏΡΠΈΡΠΏΠΎΡΠΎΠ±ΠΈΡΡ Π½ΠΈΠΆΠ΅ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ Π΄Π΅Π»Π°ΡΡ Π½Π΅ΡΡΠΎ Π΄ΡΡΠ³ΠΎΠ΅, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΡΡ ΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡ Π½Π° Π½ΡΠΆΠ½ΡΡ, Π²ΡΡ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ (Π½Ρ, ΡΠ°Π·Π²Π΅ ΡΡΠΎ Π²Ρ Π·Π°Ρ ΠΎΡΠΈΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ» Π² Π΄ΡΡΠ³ΠΎΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅).
ΠΠΎΠ΄ ΡΠ°ΡΡΠΈΡΠ½ΠΎ ΠΏΠΎΠ·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΡΠΎΠΏΠΈΠΊΠ° (ΡΠΏΠ°ΡΠΈΠ±ΠΎ Apostol), Π½ΠΎ ΡΠ°ΠΌ ΠΎΠ½ ΡΠΎΡ
ΡΠ°Π½ΡΠ΅Ρ ΡΠ°ΠΉΠ»Ρ, Π·Π°ΡΠΈΡΠ°Ρ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠ΅. Π€ΡΠ½ΠΊΡΠΈΡ morph-filename
Π²Π·ΡΡΠ° ΠΎΡΡΡΠ΄Π°.
(define (morph-filename orig-name new-extension)
(let* ((buffer (vector "" "" "")))
(if (re-match "^(.*)[.]([^.]+)$" orig-name buffer)
(string-append (substring orig-name 0 (car (vector-ref buffer 2))) new-extension)
)
)
)
(define (script-fu-batch-readability inInFolder inOutFolder inRadius inHigh-input)
(let* ((filelist (cadr (file-glob (string-append inInFolder DIR-SEPARATOR "*") 1))))
(while (not (null? filelist))
(let* ((filename (car filelist))
(image (car (gimp-file-load RUN-NONINTERACTIVE filename filename)))
(layer (car (gimp-image-get-active-layer image)))
)
(script-fu-readability image layer inRadius inHigh-input)
(set! layer (car (gimp-image-get-active-layer image)))
(set! filename (string-append inOutFolder DIR-SEPARATOR
(morph-filename (car (gimp-image-get-name image)) "png")))
(file-png-save2 RUN-NONINTERACTIVE image layer filename filename 0 9 0 0 0 1 0 0 0)
(gimp-image-delete image)
)
(set! filelist (cdr filelist))
)
)
)
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π‘ΠΊΡΠΈΠΏΡ Readability Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΏΠ°ΠΊΠ΅ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°ΡΠ°ΡΡ Π·Π΄Π΅ΡΡ (Π·Π΅ΡΠΊΠ°Π»ΠΎ). ΠΠΎΠ΄ ΠΏΡΠΎΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½, Π΄Π°ΠΆΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ·Π»ΠΈΡΠ½Π΅.
ΠΡΡ ΡΠ°Π· Π½Π°ΠΏΠΎΠΌΠ½Ρ, ΡΡΠΎ ΡΡΠ°ΡΡΡ Π½Π΅ ΠΏΡΠ΅ΡΠ΅Π½Π΄ΡΠ΅Ρ Π½Π° ΠΏΠΎΠ»Π½ΠΎΡΡ Π² ΡΠΈΡΠΎΠΊΠΎΠΌ ΡΠΌΡΡΠ»Π΅ ΠΈ ΡΠ°ΡΡΡΠΈΡΠ°Π½Π° Π»ΠΈΡΡ Π½Π° ΡΠΎ, ΡΡΠΎΠ±Ρ ΡΠΈΡΠ°ΡΠ΅Π»Ρ ΠΌΠΎΠ³ ΡΠ΅ΡΡΡ, Π²Π΄ΡΠΌΡΠΈΠ²ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ, ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ ΠΏΡΠ°ΠΊΡΠΈΠΊΡΡΡΡ, ΠΈ Π½Π°ΡΠ°ΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΊΡΠΈΠΏΡΡ, ΡΠ΅ΡΠ°ΡΡΠΈΠ΅ Π΅Π³ΠΎ Π·Π°Π΄Π°ΡΠΈ. Π’Π°ΠΊ, ΡΡΠΎΠ±Ρ Π½Π° ΡΡΠΎ Π½Π΅ ΡΡΠ»ΠΎ ΡΡΠΎΠ»ΡΠΊΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½Π° Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ·ΡΠΊΠ°.
ΠΡΠ»ΠΈ Π²Ρ ΠΏΡΠΎΡΠΈΡΠ°Π»ΠΈ ΡΡΠ°ΡΡΡ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ°, ΡΠΎ ΡΠ΅ΠΏΠ΅ΡΡ Π²Ρ ΡΠΌΠ΅Π΅ΡΠ΅ Script-fu Π½Π΅ Ρ ΡΠΆΠ΅ ΠΌΠ΅Π½Ρ.
ΠΠΈΡΠ΅ΠΌ ΡΠΊΡΠΈΠΏΡΡ Π½Π° Π²ΡΠ΅ ΡΠ»ΡΡΠ°ΠΈ ΠΆΠΈΠ·Π½ΠΈ / Habr
ΠΠ°ΠΆΠ΄ΡΠΉ, ΠΊΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π» ΡΠΈΡΠ°Π΄ΠΌΠΈΠ½ΠΎΠΌ UNIX-ΡΠΈΡΡΠ΅ΠΌ, ΡΠ°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ Π½Π°ΡΠΈΠ½Π°Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΊΡΠΈΠΏΡΠΎΠ².
ΠΠ°ΠΏΠΈΡΠ°Π½Ρ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π½Π° ΡΡΠΌ ΡΠ³ΠΎΠ΄Π½ΠΎ β ΠΎΡ bash’Π° Π΄ΠΎ tcl. ΠΠ°ΠΆΠ΅Π½ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄.
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ ΠΏΠΎΠΏΡΠΎΠ±ΡΡ Π²ΠΊΡΠ°ΡΡΠ΅ ΠΎΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΈΠ΅ΠΌΡ ΡΠΊΡΠΈΠΏΡΠΎΠ²ΠΎΠΉ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ ΡΠΊΡΠΈΠΏΡΡ?
1. ΠΠΎΠ³Π΄Π° ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ ΠΎΠ΄Π½ΠΎΡΠΈΠΏΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ 1000 ΡΠ²ΠΈΡΡΠ΅ΠΉ, ΡΠ°Π·ΠΎΡΠ»Π°ΡΡ ΡΠΏΠ°ΠΌ ΠΏΡΠΈΠ³Π»Π°ΡΠ΅Π½ΠΈΡ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΡ ΠΈΠ»ΠΈ ΡΠΎΠ±ΡΠ°ΡΡ Π±Π°Π·Ρ MAC-Π°Π΄ΡΠ΅ΡΠΎΠ² β ΡΠΊΡΠΈΠΏΡΡ Π½Π°ΡΠΈ Π»ΡΡΡΠΈΠ΅ Π΄ΡΡΠ·ΡΡ.
2. ΠΠΎΠ³Π΄Π° Π½Π΅ΠΊΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ.
ΠΡΡ
ΠΈΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ
ΠΊΠΎΠΏΠΈΠΉ, ΠΎΡΠΈΡΡΠΊΠ° mysql-Π±Π°Π·Ρ ΠΎΡ ΠΌΡΡΠΎΡΠ° ΠΈΠ»ΠΈ ΡΠ±ΠΎΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ β ΡΠ΅ ΡΠ°ΠΌΡΠ΅ ΡΠ»ΡΡΠ°ΠΈ.
3. ΠΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΡΠΎ-ΡΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΠ΅, Π½ΠΎ Π»Π΅Π½ΠΈΠ²ΠΎ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ Β«ΠΏΠΎ ΡΠ΅ΡΡΡΠ·Π½ΠΎΠΌΡΒ».
ΠΡΠΈΠΌΠ΅ΡΡ β ΠΌΠΈΠΊΡΠΎΠ±ΠΈΠ»Π»ΠΈΠ½Π³ΠΈ, ΡΡΠ΅ΡΡΠΈΠΊΠΈ ΡΡΠ°ΡΠΈΠΊΠ° ΠΈ ΡΠΈΡΡΠ΅ΠΌΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΈΠΊΠΎΠ².
ΠΡΠΎ Π½ΡΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ Π½Π° C/C++. ΠΠΎ Π½Π°ΡΠ°Π»ΡΡΡΠ²ΠΎ ΡΠΊΠ°Π·Π°Π»ΠΎ: Β«Π‘Π΄Π΅Π»Π°ΡΡ ΡΠ΅Π³ΠΎΠ΄Π½Ρ!Β». Π ΡΠ½ΠΎΠ²Π° ΡΠΊΡΠΈΠΏΡΡ β ΠΈ ΠΌΡΡΠ»Ρ Β«ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΒ». π
ΠΠΎΠ³Π΄Π° Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ ΡΠΊΡΠΈΠΏΡ?
ΠΡΠ΅Π³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΡΡΡΠΌ ΠΏΠ΅ΡΠ²ΡΠΌ ΠΏΡΠ½ΠΊΡΠ°ΠΌ.
Π₯ΠΎΡΡ Π΅ΡΠ»ΠΈ Ρ
ΠΎΡΠΈΡΠ΅ β ΠΏΠΈΡΠΈΡΠ΅. ΠΡΠ΅ΠΌΡ Π²Π°ΡΠ΅. π
ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΈΠ· Π»ΠΈΡΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ
1. Π‘ΠΊΡΠΈΠΏΡ ΠΏΠΎΡΠΈΠ½ΠΊΠΈ Π²ΡΠ΅Ρ ΡΠ°Π±Π»ΠΈΡ mysql. Π‘ΡΠ°Π²ΠΈΠ» Π½Π° Ρ ΠΎΡΡΠΈΠ½Π³ ΠΏΠΎ ΠΊΡΠΎΠ½Ρ β ΡΡΠ°Π·Ρ ΠΏΡΠΎΠΏΠ°Π»ΠΈ Π·Π²ΠΎΠ½ΠΊΠΈ Π°Π±ΠΎΠ½Π΅Π½ΡΠΎΠ² Π½Π° ΡΠ΅ΠΌΡ Π½Π΅ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ ΡΠ°ΠΉΡΠΎΠ² Π½Π° mysql. [bash]
2. ΠΠ°ΡΡΠΎΠ²ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ Π½Π° ΡΠ²ΠΈΡΡΠ°Ρ AT-8000S. [perl]
iplist.txt β ΡΠΏΠΈΡΠΎΠΊ ΡΠ²ΠΈΡΡΠ΅ΠΉ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ ip:login:password
command.txt β ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΠΌΠ°Π½Π΄.
3. ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠ°Π±ΠΎΡΡ Π΄Π΅ΠΌΠΎΠ½Π° β ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ ΠΏΠ°Π΄ΡΡΠΈΡ
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ.
ΠΠΎΠΆΠ½ΠΎ ΡΠ±ΡΠ°ΡΡ while ΠΈ Π·Π°ΠΏΠΈΡ
Π½ΡΡΡ Π² ΠΊΡΠΎΠ½ΡΠ°Π±.
4. ΠΠΆΠ΅Π΄Π½Π΅Π²Π½ΡΠΉ Π±Π΅ΠΊΠ°ΠΏ Ρ ΡΠ°ΡΠΏΠΈΡ
ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΠΏΠ°ΠΏΠΎΡΠΊΠ°ΠΌ Π²ΠΈΠ΄Π° <Π³ΠΎΠ΄>/<ΠΌΠ΅ΡΡΡ>/<Π΄Π΅Π½Ρ>.
Π ΠΊΡΠΎΠ½ΡΠ°Π±.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π‘ΠΊΡΠΈΠΏΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ. Π‘ΠΊΡΠΈΠΏΡΡ Π½ΡΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ. Π£Π΄Π°ΡΠΈ. π
P.S. ΠΠ·Π²ΠΈΠ½ΡΡΡΡ Π·Π° ΠΊΠΎΡΡΠ²ΠΎΡΡΡ β ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΠΎΡΡ Π½Π° Π₯Π°Π±ΡΠ΅.