2017-03-16 83 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