У мене є скрипт , де ми маємо такі рядки if [ -z "$xyz" ]і if [ -n "$abc" ], але я не впевнений , що їх мета. Хто-небудь може пояснити, будь ласка
У мене є скрипт , де ми маємо такі рядки if [ -z "$xyz" ]і if [ -n "$abc" ], але я не впевнений , що їх мета. Хто-небудь може пояснити, будь ласка
Відповіді:
Ви можете знайти дуже хороші посилання для операторів в Bash тут . Якщо ви використовуєте іншу оболонку, просто шукайте, <my shell> operatorsі ви знайдете все необхідне. У вашому конкретному випадку ви використовуєте:
-n
string is not null.
-z
string is null, that is, has zero length
Проілюструвати:
$ foo="bar";
$ [ -n "$foo" ] && echo "foo is not null"
foo is not null
$ [ -z "$foo" ] && echo "foo is null"
$ foo="";
$ [ -n "$foo" ] && echo "foo is not null"
$ [ -z "$foo" ] && echo "foo is null"
foo is null
man testабо man [дасть вам усі варіанти тестування команди. У цьому випадку -n перевіряє, чи має вміст $ abc ненульову довжину, а -z перевіряє, чи вміст $ xyz є рядком нульової довжини.
man test(завжди?) Дає головну сторінку для зовнішньої програми, яка (принаймні для версії GNU-coreutils) явно попереджає, що деякі (більшість IME) оболонок мають вбудовану версію, яка може бути різною.