我试图在windowmaker下运行一个简单的.sh脚本,该脚本在请求用户输入后运行一组X应用程序。我的所有尝试都是徒劳的;在询问问题后终端窗口蒸发,应用程序根本无法运行。我已经尝试通过在X控制台上键入路径来运行此脚本并且它运行正常,但是当我运行该图标时它不会。
这是我的两次尝试;
echo "this or that? [a, b] "
read input
if [[ $input == "a" || $input == "A" ]]; then
/path/to/app1 "/file/to/open" &
/path/to/app2 "/file/to/open" &
/path/to/app3 "/file/to/open" &
path/to/app4 &
else
/path/to/app5 "/file/to/open" &
/path/to/app6 "/file/to/open" &
/path/to/app7 "/file/to/open" &
path/to/app8 &
fi
read -p "this or that? [a, b] " doit
case $doit in
a|A)
/path/to/app1 "/file/to/open" &
/path/to/app2 "/file/to/open" &
/path/to/app3 "/file/to/open" &
path/to/app4 &
b|B)
/path/to/app5 "/file/to/open" &
/path/to/app6 "/file/to/open" &
/path/to/app7 "/file/to/open" &
path/to/app8 &
;;
esac
在windowmaker的设置中,我创建了一个运行xterm -e" /path/to/script.sh"的图标。我不知道还能做什么。我希望有人能在这里帮助我。提前谢谢。
答案 0 :(得分:0)
一些不适合评论栏的建议。
首先,捕获一些调试:
read ...
echo `date`" : input = $input" # or $doit
xterm -e "/path/to/script.sh >> /path/to/script.out 2>&1"
运行失败的测试后,检查/path/to/script.out
是否有任何(希望是有用的)消息...
date/input
消息,并且没有错误消息,那么xterm -e
电话就会出现问题(即您甚至没有进入脚本调用)date/input
消息或与脚本相关的错误消息,那么您知道xterm -e
调用成功,您可以专注于脚本的内容...... 现在存在一些脚本问题:
/
,即它们应该如下所示: /path/to/app4 &
/path/to/app8 &
case
语句,每个选项测试应以双分号(;;
)结尾;当您为b|B)
测试完成此操作时,您将错过a|A)
测试,因此请更新脚本: a|A) ...
path/to/app4 & ;;
答案 1 :(得分:0)
事实证明我实际上已经启动了应用程序,只是在每个块结束时使用等待,如下所示:
echo "this or that? [a, b] "
read input
if [[ $input == "a" || $input == "A" ]]; then
/path/to/app1 "/file/to/open" &
/path/to/app2 "/file/to/open" &
/path/to/app3 "/file/to/open" &
path/to/app4 &
wait
else
/path/to/app5 "/file/to/open" &
/path/to/app6 "/file/to/open" &
/path/to/app7 "/file/to/open" &
path/to/app8 &
wait
fi
我还有另外一个与此无关的问题,我稍后会问。