2016-05-10 3 views
1

Я работаю над скриптом оболочки, и я получаю сообщение об ошибке Test: Аргумент ожидается. Его в основном СЕПГ команды следуют проверки, если есть какие-либо ошибкиТест: Аргумент Ожидаемый

Пожалуйста, найдите ниже

sed "s|${var1}|${var2}|g" $FILE_PATH$FILE_NAME > /tmp/$FILE_NAME 

if [ "$command_error" != 0 ] ; then 
     date 
     echo "Error $command_error reading file $WS_FILE" 
     echo "File Does not exist or is not readable" 
     exit 30 
fi 
+0

игнорировать двойные кавычки вокруг командной ошибки – SSR

+0

Зачем '$ command_error' быть чем-то другим, кроме пустой строки? Где он установлен? Кроме того, по сравнению с целым числом следует использовать '-ne' вместо'! = '. –

+0

Привет, я новичок в shell-скриптах. Значит ли это, что мне нужно установить команду sed в команду $ command_error. Если это так, я получаю сообщение об ошибке, поскольку = sed не найден. Я установил его как: $ command_error = sed "s | $ {var1} | $ {var2} | g" $ FILE_PATH $ FILE_NAME>/tmp/$ FILE_NAME – SSR

ответ

1

Что оболочки вы используете?

Я думаю, что вам не хватает строки:

command_error=$? 

между двумя блоками. Помните, что многие (все?) Команды (например, echo $?) Фактически изменят его значение. Поэтому неплохо назначить $? к такой временной переменной.

Смежные вопросы