2016-01-28 3 views
0

Я пытаюсь написать скрипт для удаления 0Kb файлов, но если оператор продолжает давать мне ошибки, и я задаюсь вопросом, если вы можете помочь мнеShell Scripting; если оператор выводит неожиданный оператор?

у меня есть:

#!/bin/sh 
EMPTY_FILE=$(find ${1-.} -size 0) 
echo $EMPTY_FILE 
echo "delete" 
read text 
if [ "$text" == "yes" ]; then echo yes; fi 

ошибка is

./deleteEmpty.sh: 6: [: yes: unexpected operator 

Любая помощь по поводу того, что неправильно, полезно! Благодаря

+0

Это, похоже, работает на меня. То есть, если я запустил этот скрипт и набрал «yes», я вернусь «да». Разве это не то, что вы ожидаете? –

+0

Хм .. это не работает для меня. есть ли что-то, что мне нужно установить/изменить для этого? Edit: oh man, я использовал/sh вместо bash – user2874977

+1

Вы - команда 'test', в которой вы должны использовать' = 'для сравнения строк вместо' == '. Если вы используете bash, то '==' тоже будет хорошо. –

ответ

0

Попробуйте использовать двойные скобки:

if [[ "$text" == "yes" ]]; then echo yes; fi 
0

Я полагаю, вы хотите использовать Баш. В этом случае первая строка вашего сценария должна быть

#!/bin/bash 
3

В равнинном ш оператор равенства является =. == - это багизм. Либо изменить хижину строку #!/bin/bash или изменить тест:

if [ "$text" = "yes" ]; then echo yes; fi 

Если вы используете Баш, I recommend using [[ instead of [.

#!/bin/bash 

if [[ $text == yes ]]; then echo yes; fi