您好,我写了一个编译几个cpp和目标文件的bash脚本 用g ++。我的目标是通过以下方式在vim中运行脚本:但是 只有当我在外面时,它才能在vim中运行。
此外,我想了解为什么在脚本中使用% 不会给我当前的文件,但会给出错误 代替。
脚本:
#!/bin/bash
# Search for the main module and remove the ext.
delimain=`grep main *.cpp | cut -d. -f1`
# Checks if there are also object files
if [ -f ./*.o ]; then
g++ -g *.cpp *.o -o $delimain.exe
# If There are only cpp file
else
g++ -g *.cpp -o $delimain.exe
fi
谢谢!
答案 0 :(得分:1)
重新评论
我正在使用ubuntu 13.10别名:别名链接'sh~ / bin / lin_script%'
#!/bin/bash
第一行告诉shell已经使用了哪个解释器。你显然是Bash的初学者;尝试阅读一些介绍以获得更好的理解。%
符号对Vim是特殊的。两者不一样。请参阅我的其他答案如何将文件名传递给脚本。答案 1 :(得分:0)
当你提供给Vim中的Ex命令时,%
会自动展开,这是对的,但这不适用于外部脚本。你需要做的是在调用外部脚本时传递当前文件,并在那里引用命令行参数:
Vim内部:
:!linkage.sh %
在你的剧本中:
if [ $# -gt 0 ]; then
delimain=$1
else
delimain=`grep ...