在我的Ubuntu机器上,我想创建一个用于编译c文件的自定义命令。 目前我有一些不喜欢的东西,它不像我想要的那样:
#compile the file
gcc $1 -o ~/.compile-c-output
#run the program
./~/.compile-c-output
#delete the output file
rm ~/.compile-c-output
问题是在gcc准备好之前执行了run命令,因此该文件不存在。我怎么能等到gcc准备好了,我可以正常运行文件?
顺便说一下,如何在输出文件中添加一个随机数,这样如果我在两个不同的终端上运行它,这个脚本也能正常工作?
答案 0 :(得分:2)
./~/.compile-c-output
摆脱领先的./
。这就是文件不存在的原因。
~/.compile-c-output
要获取随机文件名,请使用mktemp
。 mktemp
保证不会覆盖现有文件。
file=$(mktemp) # unspecified file name in /tmp
gcc "$1" "$file" && "$file"
rm "$file"