如何在bash命令行中调用变量?

Chi*_*hab 0 linux variables bash

我正在尝试创建这个小程序来帮助我,只用一个命令,在Ubuntu的终端中编译和运行一个C程序.

为了让它变得更加漂亮,我在bash文件中添加了一个参数,这样我就可以将它用于我想要的任何C程序.所以它应该是这样的:

  • 创建一个变量来存储文件的名称
  • 使用该变量编译程序(到相同的文件名)
  • 使用相同的名称来运行该文件.

这是代码:

# usr/bin/bash
filename=$1
cc -o $filename "$filename.c"
./$filename.out
Run Code Online (Sandbox Code Playgroud)

几乎一切都在运行,我仍然唯一的问题是在最后一行:

./$filename.out
Run Code Online (Sandbox Code Playgroud)

它似乎没有在执行最终程序的命令中使用变量的名称.

我是bash的菜鸟(假设我几个月没用过它).

PSk*_*cik 6

cc -o foofoo不输出foo.out.您还应该引用变量扩展以防止IFS-splitting和globbing:

filename=$1
cc -o "$filename" "$filename.c" &&
./"$filename"
Run Code Online (Sandbox Code Playgroud)

除此之外# /usr/bin/bash(不像 #!/usr/bin/bash)什么都不做.这是一个评论.整个事情将会运行/bin/sh,而不是bash(但你不需要bash,无论如何).