我正在尝试编写一个 shell 脚本,它可以帮助我只需单击一下即可轻松运行和编辑 java 文件。我的意思是该脚本采用 java 文件名作为参数,然后为后续操作提供三个不同的选项。我需要单击其中之一,相应地工作就完成了。我正在使用 bash shell。我提供我编写的代码,然后我将引用我的查询。
#!/bin/sh
if [ $# -eq 0 -o $# -gt 1 ] ; then
echo "Provide single filename"
exit
fi
file="$1"
if echo "$file" | grep ".java$" >/dev/null ; then
file=`expr "$file" : '\(.*\).java'`
fi
file=`echo "$file" | tr -d '.'`
file_with_ext=$file.java
response=`kdialog --radiolist "What do you want to do?" 1 "Run Program" on 2 "Open with vi" off 3 "Open with vi and then Run" off`
if [ -z $response ] ; then
exit
fi
if [ $response -eq 2 -o $response -eq 3 ] ; then
if [ ! -s "$file_with_ext" ] ; then
initcode="public class $file{
public static void main(String[] args){
}
}
"
echo "$initcode" > $file_with_ext
fi
vi $file_with_ext
fi
if [ $response -eq 1 -o $response -eq 3 ] ; then
javac $file_with_ext
if [ $? -eq 0 ] ; then
java $file_with_ext 2>/dev/null
if [ $? -ne 0 ] ; then
java $file
fi
fi
fi
现在我想向这个脚本添加更多功能。我希望每当我按下某些特定的按键组合时,脚本就会执行 java 程序(编译后)并在其他终端中给出输出。如果没有文本编辑器的话我可以轻松完成。但由于我是在 vi 编辑器中编辑 java 文件,因此当我使用任何中断键时,它不会被 shell 脚本捕获,而是被 vi 编辑器视为命令。
有什么方法可以达到我想要的结果吗?
任何形式的帮助或指导将不胜感激。谢谢你!