2016-02-28 168 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應該是executable_filename – jobravooo

回答

0

如果傳遞-o的則腳本將通過-ogcc,因此調用結果文件的東西其他比「的a.out」。因爲那是通過-ogcc

+0

是的,這就是我正在努力去做。更改a.out文件的名稱。但是在ls上新創建的可執行文件不在那裏。 – jobravooo

+0

那麼你不僅沒有閱讀你的劇本,而且你甚至沒有閱讀你的問題。 –

+0

不應該有一個可執行文件??????? – jobravooo