在bash中操作命令行参数

时间:2012-09-13 04:28:16

标签: bash

我想创建一个shell脚本,以便我可以输入

gc program_name.c

并达到与输入

相同的效果
gcc -o program_name program_name.c

现在,我知道如何做到这一点,以便我只需输入gcc program_name并获得效果:

gcc -o $1 $1.c

问题是我想使用制表符完成,这个方法要求我退格以删除扩展名。 (是的,这是一个picayune的事情,但我也有兴趣学习这种论证操纵背后的一般原理。)

换句话说,我希望能够让脚本删除尾随扩展名。我猜我可以使用另一个变量,但我不知道如何说,例如,$ name = $ 1 减去尾随扩展名

感谢。

3 个答案:

答案 0 :(得分:2)

#!/bin/bash
exec gcc -o "${1%.c}" "$1" 

答案 1 :(得分:1)

使用unix

name=`basename $1 ".c"`

答案 2 :(得分:0)

看看您是否可以从以下代码段中继续前进。

pgm=test.c
echo ${pgm%%.*}