私はバージョン10.04からUbuntuを使用していますが、Windowsと比較してより使いやすいことがわかりました。現在、「Precise12.04」を使用しています。私はbashスクリプト用に多くのカスタムランチャーを作成しましたが、昨日まで問題はありませんでした。
複数の実行可能ファイルを含むソフトウェアスイートをインストールしました。メインの実行可能ファイルabaqus
optsoftwaresname
にあります 実行可能ファイルabq610i
へのシンボリックリンクです /opt/softwaresname/executables/
にあります 。
メインのexeabaqus
いくつかのコマンドライン引数が必要です。引数cae
を使用します 、(つまり、abaqus cae
)ただし、グラフィックをより適切なモードでレンダリングするための別のコマンドを使用するため、最終的な呼び出しは次のようになります。
XLIB_SKIP_ARGB_VISUALS=1 abaqus cae
.bash_rc
でこの長いコマンドのエイリアスを作成しました 次のようにファイルします:
alias abaquscae="XLIB_SKIP_ARGB_VISUALS=1 abaqus cae"
エイリアスがソフトウェアを実行するため、すべてが完全に正常に機能しました。怠惰なチャンピオンなので、このためにカイロドックランチャーを作成することを考えました。そこで、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」という名前のファイルを見つけようとしますが、もちろん失敗します。
そのコマンドはbash
を起動します 、Ubuntuのデフォルトのユーザーシェルであり、実行するように指示します(-c
オプション)文字列「XLIB_SKIP_ARGB_VISUALS =1 / opt / softwaresname / abaqus cae」なので、CLIに入力したときと同じように解釈されます。