コマンドラインで2つのファイル名を変数として使用するbash関数を実行します。

コマンドラインで2つのファイル名を変数として使用するbash関数を実行します。

file1.inp次の2つのファイルを使用してUbuntuコマンドラインでAbaqusジョブを実行していますfile2.f

abaqus job=file1 user=file2.f

私はしばしば別のファイルでこれを行うので、より簡単にしたいと思います。

myfunc file1 file2.f

その中には、ファイル名を取得してコマンドを実行する関数がmyfuncあります。bashabaqusabaqus job=file1 user=file2.f

この問題の解決にご協力いただきありがとうございます。

ベストアンサー1

myfunc () {
   abaqus job="$1" user="$2"
}

この呼び出しは、abacus与えられた関数の2つの引数で構成される引数で行われます。

いくつかのエラーチェック(正しい数の引数が渡されたことを確認):

myfunc () {
   if [ "$#" -ne 2 ]; then
       printf '%s: Expecting 2 arguments, got %s\n' "${FUNCNAME[0]}" "$#" >&2
       return 1
   fi

   abaqus job="$1" user="$2"
}

関数名を指定することもできますが、abaqus必ず呼び出す必要があります。実際 abacus命じる

command abaqus job="$1" user="$2"

関数の内部では無限再帰は発生しません。

おすすめ記事