简单的“变量”Bash 文件

简单的“变量”Bash 文件

我只想制作一个以文件名作为参数的 bash 文件。在该 bash 文件中,我想采用扩展名之前的名称并将其作为“变量”,以便在其他地方使用。例如,如果我要运行bash_script_name sample.asm,bash 脚本将运行:

nasm -f elf sample.asm
ld -s -o sample sample.o io.o

所以基本上的形式是bash_script_name $().asm

nasm -f elf $().asm
ld -s -o $() $().o io.o

...但是我会在 bash 中这样做。

答案1

脚本的第一个参数将位于$1.您可以使用bash 字符串替换拉动延伸部分;这会删除最后一次出现的所有内容.,并将结果存储在$filename

filename="${1%.*}"

$filename然后您可以在脚本中的任意位置使用:

nasm -f elf "$filename.asm"
ld -s -o "$filename" "$filename".o io.o

答案2

这个特别的答案Stack Overflow 上的一个类似问题似乎是经过深思熟虑的。它包括处理其中没有点的文件(“somefile”)和其中有多个点的文件(“somefile.tar.gz”)的逻辑。

相关内容