LINUX.ORG.RU

История изменений

Исправление Pinkbyte, (текущая версия) :

А ты не через test проверяй, а через '['
(здесь предполагается что $A и $B не заданы)

pinkbyte@mini-router ~ $ [ $A = $B ] && echo yes || echo no
yes
pinkbyte@mini-router ~ $ [ x$A = x$B ] && echo yes || echo no
yes
pinkbyte@mini-router ~ $ [ $A = x$B ] && echo yes || echo no
bash: [: =: unary operator expected
no
pinkbyte@mini-router ~ $ [ x$A = $B ] && echo yes || echo no
bash: [: x: unary operator expected
no

То есть когда оба аргумента пустые - это окей. Когда один - выдается ошибка.

В баше для этого есть свой оператор(но тогда с совместимостью с другими шеллами придется попрощаться):

[[ $A = x$B ]] && echo yes || echo no
no

Исправление Pinkbyte, :

А ты не через test проверяй, а через '['
(здесь предполагается что $A и $B не заданы)

pinkbyte@mini-router ~ $ [ $A = $B ] && echo yes || echo no
yes
pinkbyte@mini-router ~ $ [ x$A = x$B ] && echo yes || echo no
yes
pinkbyte@mini-router ~ $ [ $A = x$B ] && echo yes || echo no
bash: [: =: unary operator expected
no
pinkbyte@mini-router ~ $ [ x$A = $B ] && echo yes || echo no
bash: [: x: unary operator expected
no

То есть когда оба аргумента пустые - это окей. Когда один - выдается ошибка.

В баше для этого есть свой оператор(но тогда с совместимостью придется попрощаться):

[[ $A = x$B ]] && echo yes || echo no
no

Исходная версия Pinkbyte, :

А ты не через test проверяй, а через '['
(здесь предполагается что $A и $B не заданы)

pinkbyte@mini-router ~ $ [ $A = $B ] && echo yes || echo no
yes
pinkbyte@mini-router ~ $ [ x$A = x$B ] && echo yes || echo no
yes
pinkbyte@mini-router ~ $ [ $A = x$B ] && echo yes || echo no
bash: [: =: unary operator expected
no

То есть когда оба аргумента пустые - это окей. Когда один - выдается ошибка.

В баше для этого есть свой оператор(но тогда с совместимостью придется попрощаться):

[[ $A = x$B ]] && echo yes || echo no
no