🐧 Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ -z Π½Π° Bash

РазбираСмся Π² bash

by itisgood

Bash прСдоставляСт ΠΌΠΎΡ‰Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ слоТныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ быстро ΠΈ эффСктивно.

Одной ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… возмоТностСй являСтся использованиС ΠΎΠΏΡ†ΠΈΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ Bash.

Одной ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… ΠΎΠΏΡ†ΠΈΠΉ являСтся опция -z, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ рассмотрим Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅.

Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ опция -z Π² Bash

Π’ Bash опция -z ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ пустоты строки ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ с ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ test. ΠžΠΏΡ†ΠΈΡ -z Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ true, Ссли Π΄Π»ΠΈΠ½Π° строки Ρ€Π°Π²Π½Π° Π½ΡƒΠ»ΡŽ, ΠΈ false Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС.

Бинтаксис для использования ΠΎΠΏΡ†ΠΈΠΈ -z с ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ test ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

ifΒ [Β -zΒ "$string"Β ];Β then

# string is empty

else

# string is not empty

fi

ΠžΠΏΡ†ΠΈΡ -z ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‚ΠΎΠ³ΠΎ, пуста Π»ΠΈ пСрСмСнная “string”, поэтому Ссли пСрСмСнная пуста, скрипт выполняСт ΠΊΠΎΠ΄ Π² Π±Π»ΠΎΠΊΠ΅ “if”, Π° Ссли ΠΎΠ½Π° Π½Π΅ пуста, Ρ‚ΠΎ выполняСтся ΠΊΠΎΠ΄ Π² Π±Π»ΠΎΠΊΠ΅ “else”.

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ скрипта, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΠΏΡ†ΠΈΡŽ -z для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‚ΠΎΠ³ΠΎ, Π²Π²Π΅Π» Π»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки:

#!/bin/bash

ifΒ [Β -zΒ "$1"Β ];Β then

echoΒ "No argument provided"

else

echoΒ "Argument provided: $1"

fi

Команда test ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ с ΠΎΠΏΡ†ΠΈΠ΅ΠΉ -z для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‚ΠΎΠ³ΠΎ, пуст Π»ΠΈ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки.

Если ΠΎΠ½ пуст, Ρ‚ΠΎ скрипт Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ “No argument provided, Π° Ссли ΠΎΠ½ Π½Π΅ пуст, Ρ‚ΠΎ сцСнарий Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ “Argument provided:: “, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°.

см. Ρ‚Π°ΠΊΠΆΠ΅:

 

You may also like

Leave a Comment