バージョン10.04以降、Ubuntuを使用していますが、Windowsに比べて使いやすいことがわかりました。現在、「Precise 12.04」を使用しています。私はbashスクリプト用に多くのカスタムランチャーを作成しましたが、昨日まで問題はありませんでした。
複数の実行可能ファイルを含むソフトウェアスイートをインストールしました。メインの実行可能ファイルabaqus
は\opt\softwaresname
にあり、abq610i
の実行可能ファイル/opt/softwaresname/executables/
へのシンボリックリンクです。
メインexe abaqus
には、いくつかのコマンドライン引数が必要です。引数cae
(つまり、abaqus cae
)を使用しますが、別のコマンドでグラフィックをより良いモードでレンダリングするため、最終呼び出しはXLIB_SKIP_ARGB_VISUALS=1 abaqus cae
です。
.bash_rc
ファイルにこの長いコマンドのエイリアスを作成しました:
alias abaquscae="XLIB_SKIP_ARGB_VISUALS=1 abaqus cae"
エイリアスがソフトウェアを実行するため、すべてが完璧に機能しました。怠zyなチャンピオンなので、このためにカイロドックランチャーを作成することを考えました。そこで、「[クリックで起動する]コマンド」ボックスにabaquscae
と入力し、[ターミナルで実行]をオンにしました。しかし、残念なことに、ランチャーをクリックするとエラーが発生しました::
There was an error creating the child process for this terminal
Failed to execute child process "abaquscae" (No such file or directory)
その結果、小さなbashスクリプトファイル「abaquscae.sh」を作成しました。
#!/bin/sh
"XLIB_SKIP_ARGB_VISUALS=1 abaqus cae"
保存して、実行可能にし、bashシェルで実行すると、再び同様のエラーが発生しました:
./abaquscae.sh: 2: ./abaquscae.sh: XLIB_SKIP_ARGB_VISUALS=1 abaqus cae: not found
今私は完全に失われています、私は多くのトリックを試しました.
1- bashスクリプト内のコンマの削除、
2- dos2unix
にする、
3-実行可能ファイルへのフルパスを使用
しかし、このスクリプトはbashターミナルを介して実行されていません。
コマンド(およびそのエイリアス)はbashターミナルで正常に動作しますが、他のチャネル(スクリプト/ランチャーなど)を介して実行されると、ターミナルはそれらを認識できません:( ..
この問題を解決する方法についてアドバイスや情報を持っている専門家がいる場合は、共有してください。とてもありがたいです。
スクリプトは次のようになります。
#!/bin/bash
XLIB_SKIP_ARGB_VISUALS=1 /opt/softwaresname/abaqus cae
次のコマンドを使用してランチャーを作成することもできます。
bash -c 'XLIB_SKIP_ARGB_VISUALS=1 /opt/softwaresname/abaqus cae'
コマンドラインで実行可能ファイル名の前に環境変数を設定することは、CLI(コマンドラインインターフェイス)シェルの機能です。 VARIABLE=value /path/to/executable
ランチャーでは、ランチャーを読み取る(および実行可能ファイルを効果的に起動する)プログラムは、「VARIABLE = value」という名前のファイルを見つけようとしますが、もちろん失敗します。
このコマンドは、Ubuntuのデフォルトユーザーシェルであるbash
を起動し、実行するよう指示します(-c
オプション)文字列「XLIB_SKIP_ARGB_VISUALS = 1/opt/softwaresname/abaqus cae」なので、CLIでそれを入力したときのように解釈されます。
私にとっては、#!/bin/bash/
の代わりに #!/bin/bash
(余分な/
最後に)。苦情は非常に似ていましたが、「子プロセスはディレクトリではありません」と述べました。とても助かりました。