ターゲット
私のサーバーはSLURMを使用してタスクを管理します。キュー内の各ジョブにはジョブIDがあり、これは単一の整数または下線で区切られた2つの整数です123_4
。これを使用して、scontrol show job [job ID]
標準出力が保存されているファイル名(具体的には対応する行がありますStdOut=/path/to/stdout/file
)を含むジョブに関する一般的な情報を印刷できます。私が望むのは、端末入力からIDを取得し、vimでファイルを開くエイリアスを作成することです。
私の試み
alias checkout='vi $(scontrol show job $1 | grep StdOut | cut -d'=' -f 2)
質問
試みると、checkout 123_4
スクリプトはその_4
部分を無視します。実際には、この部分がアレイIDであり、1つのアレイに複数のタスクがあるので問題になります。したがって、scontrol
複数行が印刷され、StdOut=...
vimは複数のファイルを開きます(タスク123_1、123_2などの場合)。問題は$1
端末入力をどのように読み取るのか、どうすれば修正するのか分かりません。たとえば、私は$@
それをandに変更しようとしましたが、$*
似たようなことをしましたが、"${1}"
役に立ちませんでした。
私はこれがbash経験のある人なら誰でも簡単に解決できると思います!