我正在尝试创建这个小程序来帮助我,只用一个命令,在Ubuntu的终端中编译和运行一个C程序。
尝试让它变得更加漂亮,我在bash文件中添加了一个参数,这样我就可以将它用于我想要的任何C程序。所以这就是它应该如何:
以下是代码:
# usr/bin/bash
filename=$1
cc -o $filename "$filename.c"
./$filename.out
几乎一切都在运行,我仍然唯一的问题是在最后一行:
./$filename.out
似乎没有在执行最终程序的命令中使用变量的名称。
我是bash的菜鸟(假设我好几个月没用过它)。
答案 0 :(得分:6)
cc -o foo
将输出foo
而非foo.out
。您还应该双引号变量扩展以防止IFS
- 拆分和通配:
filename=$1
cc -o "$filename" "$filename.c" &&
./"$filename"
除了# /usr/bin/bash
(与#!/usr/bin/bash
不同)之外什么都不做。这是一个评论。整个事情将运行/bin/sh
,而不是bash
(但无论如何你都不需要bash。)
答案 1 :(得分:-1)
您需要使用引号:
./"$filename.out"
答案 2 :(得分:-2)
#!/bin/sh
filename=$1
cc -o "${filename}.out" "${filename}.c"
"./${filename}.out"