编译C代码的脚本

0 c linux shell terminal

通常,如果我想编译一个名为number_input.cI的类型的C程序

cc -o number_input number_input.c
Run Code Online (Sandbox Code Playgroud)

我想使用我的mac终端创建一个脚本,这样我就不必输入那个额外的单词了.最初我这样做是为了节省自己1秒的节目,但具有讽刺意味的是我花了2个多小时试图让这个工作.

a= echo "$1" | rev | cut -c3- | rev
echo $a
cc -o $a $1
echo $1
Run Code Online (Sandbox Code Playgroud)

这是我的输出:

number_input

clang:错误:没有输入文件number_input.c

我可以说正确输入名称,但由于某种原因,cc命令没有取值$1?我假设不知何故$1不直接转换成字符串或类似的东西,但我不确定.

Tom*_*ech 5

您的错误在第一行,因为您没有分配任何内容a:

a=$(echo "$1" | rev | cut -c3- | rev)
Run Code Online (Sandbox Code Playgroud)

可以解决问题(对于行为良好的文件名,至少,因为你的脚本中缺少引号).后面的空格a表示您为其分配空字符串,然后在管道中运行命令.

而不是完全颠倒两次的努力,只需删除最后两个字符${1%??}:

cc -o "${1%??}" "$1"
Run Code Online (Sandbox Code Playgroud)