
假設我有兩個二進位檔案:二進制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 的目錄之前進行搜索,那麼它將透明地運行包裝器腳本(請記住在您使用時“rehash”)正在嘗試這個)。
我假設 TOP_PROC 已經在環境中定義。