2017-03-16 57 views
0

我正在嘗試使用gcc編寫快捷方式代碼。其目的是編譯,然後自動執行我使用看起來像這樣的編譯文件。該代碼,如何存儲編譯的腳本名稱並執行它?(GCC)

gcc [email protected] -o [email protected] 
./[email protected] 

但它不會執行作爲望目。這是說像分段錯誤。 我應該如何解決這個問題?

+1

?您編寫腳本的方式不適用於多個參數。 – Barmar

+0

@Barmar'$ @'可以在'Makefile'的上下文中有意義。儘管如此,沒有足夠的信息來弄清楚發生了什麼...... – ephemient

回答

0

你爲什麼你使用`$ @`而不是`$ 1` probly想

#!/bin/sh -e 

if ! test $# -gt 0 -a -f "$1"; then 
    echo >&2 "Usage: $(basename $0) FILE [ARG]..." 
    exit 1 
fi 

F="$1" 
shift 

X=$(echo "$F" | sed 's/\.[^.]\+//') 

gcc "$F" -o "$X" "[email protected]" 
./"$X" 
+0

把'$ @'放在雙引號 – Barmar

+0

@Barmar完成。考慮到原始代碼有更嚴重的問題,我並沒有首先想到它。 – yugr