
2 つのバイナリ ファイルがあるとします。バイナリ1そしてバイナリ2。
それぞれに独自のオプション セットがあります。オプション1そしてオプション2。
ユーザーは、次の構造に従うコマンドを呼び出す必要があります。
binary1 options1 binary2 options2
しかし、私は設定したいオプション2自分で以下のコマンドを実行させます。
binary1 options1 alias
どこ
alias='binary2 options2'
これを bash/tcsh で動作させる方法はありますか? 私は 64 ビット アーキテクチャ上の SLES 11 SP2 で作業しています。
答え1
binary1 と options1 を開始したいものにする必要がありますか? 次に、関数「something」を定義します。
something () {
options2="...." #you define them as you want, either here or from another source
binary1="$1" ; shift
"$binary1" "$@"
binary2 $options2
}
(bash ログイン ファイルで定義します)
そして走らせます:
something binary1 options1
そうすれば、次のようなオプション1に本当に夢中になることができます。
something touch file1 file2 "file3 with extra spaces" file4
答え2
おそらくすでにお分かりかと思いますが、mpirun はエイリアスの実行を好みません。最善の方法は、実行可能ファイルのラッパーを作成することです。そのため、次のコードをファイルに記述します (実行可能にします)。
#!/usr/intel/bin/tcsh -f
exec /full/path/to/dplace -s1 -c 0-$TOP_PROC $*
このファイルに「dplace」という名前を付け、実際の dplace が見つかるディレクトリより前に検索されるディレクトリ内のユーザー パスに配置すると、代わりにラッパー スクリプトが透過的に実行されます (これを試してみるときは、「再ハッシュ」することを忘れないでください)。
TOP_PROC は既に環境で定義されていると想定します。