2013-11-17 2 views
-1

Я пишу команду в Баш скрипт, как: -Команда не найдена ошибка в Баш

${SSH} ${USER}@${HOST} mkdir -p ${DEST_LOG_DIR}; 

Однако на поток отладки я получаю как:

+ 'ssh -o StrictHostKeyChecking=no' -i xxxxx.pem [email protected] 'mkdir -p test" 
./test.sh: line 454: ssh -o StrictHostKeyChecking=no: command not found 

varibable SSH определяется как

SSH="ssh -o StrictHostKeyChecking=no" 

Почему это дает мне эту ошибку?

+3

Пожалуйста, пост _exact_ вещь, которую вы имеете в своем сценарии (включая все кавычки) и точный log, то, что вы разместили, не соответствует. – Mat

+1

Вы не даете нам полную картину: вы, очевидно, пропустили некоторые цитаты в своем вопросе. –

+0

Здесь нет проблем. Вы уверены, что используете bash ??? – thom

ответ

-1

Вы не можете выполнить такую ​​команду. Вы должны использовать Eval здесь:

eval "${SSH} ${USER}@${HOST} mkdir -p ${DEST_LOG_DIR}" 

Пример:

s="ls -w" 
${s} 
-bash: ls -w: command not found 
eval ${s} 
file1 file2 
+0

$ {s} работает как в тире, так и в bash. Но это определенно никогда не вернет 'ls -l: command not found', если дано' ls -w'. У вас есть псевдоним для 'ls'? – thom

+0

@thom: Я на 'BASH 3.2.48' и' $ {s} 'не работает над этим. Извините, 'ls -l' был плохой копией/пастой, исправил его. – anubhava

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