2017-09-04 9 views
2

ユーザ入力を求めた後、Xアプリのセットを実行するウインドウメーカーで実行される単純な.shスクリプトを取得しようとしています。すべての私の試みは無駄だった。問題を尋ねた後に端末ウィンドウが蒸発し、アプリが実行されなくなります。私はこのスクリプトをXコンソールに入力して実行しようとしましたが、完全に動作しますが、アイコンを実行してもそのスクリプトは実行されません。ウィンドウメーカーの下でスクリプトを使ってグラフィカルアプリケーションを実行する

これは私の2回の試行です。 WindowMakerのの設定で

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 

私はのxterm -e "/path/to/script.sh" を実行し、アイコンを作成しました。私は何をすべきか分からない。誰かが私を助けてくれることを願っています前もって感謝します。

+0

どのようなエラーが表示されますか? –

答えて

0

コメントブロックに収まりきらない提案がいくつかあります。

まず、いくつかのデバッグキャプチャ:例えば、stdoutに日付と入力値をエコー、ユーザーの入力に読んだ直後

  • を:

read ... echo `date`" : input = $input" # or $doit

  • アイコンを変更してstdout/stderrをファイルにダンプします。例:

xterm -e "/path/to/script.sh >> /path/to/script.out 2>&1"

あなたが失敗したテストを実行した後、その後、あなたはdate/inputメッセージが表示されない、とエラー・メッセージがない場合は...任意の(うまくいけば便利)メッセージについて

  • /path/to/script.outをチェックxterm -eコールで問題が発生しています(つまり、スクリプトコールに至っていない場合)
  • date/inputメッセージまたはスクリプト関連のエラーメッセージが表示された場合は、xterm -e呼び出しがあったことがわかります成功し、あなたはスクリプトの内容に集中することができます...スクリプトと

夫婦の問題は、彼らが今存在するとして: :

  • あなたはすなわち、APP4/app8呼び出しのための主要な/を欠落しているように見える、彼らは次のようになります。 case文の

    /path/to/app4 & /path/to/app8 &

    • 、各オプションのテストは、W終了すべき二重セミコロン(;;);単に、私が実際に起動するアプリケーションを持って

    a|A) ... path/to/app4 & ;;

0

が判明:あなたはb|B)テストのためにこれをやった一方で、あなたはa|A)テストのためにそれを逃し、そうなのようなスクリプトを更新していますそのように、各ブロックの最後にやって待機を使用して:

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 

が、私はこれに関係のない別の質問を持っていると私はビットに頼むつもりです。

関連する問題