2016-02-28 4 views
-1

Почему не создается новый исполняемый файл? Но если я удалю shift, он создаст файл?Не удалось создать исполняемый файл

if [ "$1" = "-o" ]; 
then 
    op="$2" 
    shift 2 
    gcc -o "$op" "[email protected]" &> errors.txt 
else 
shift 
echo "went to else -o not detected" 
gcc "[email protected]" &> errors.txt 
fi 
+0

Если вы добавите строку 'set -x' перед вашим кодом, bash напечатает точную строку с расширенными переменными перед ее запуском. – indiv

+0

Вы передаете '-o' скрипту? –

+0

текущий вход для этого скрипта ./compile -o executable_filename file1 file2 file3 .... op должен быть исполняемым_filename – jobravooo

ответ

0

Если передать -o в сценарий, то сценарий будет проходить -o в gcc и, следовательно, вызвать результирующий файл что-то другие чем «a.out». Потому что это то, что проходит -o до gcc.

+0

Да, это то, что я Я пытаюсь это сделать. Измените имя файла a.out. Но на ls только что созданного исполняемого файла нет. – jobravooo

+0

Тогда вы не только не прочитали свой сценарий, но и даже не прочитали свой вопрос. –

+0

Не должно быть исполняемого файла ??????? – jobravooo