是否可以為 bash 指令建立一個包含變數的捷徑?

是否可以為 bash 指令建立一個包含變數的捷徑?

例如,是否可以建立快捷方式

tar cf - /VARIABLE_1 -P | pv -s $(du -sb /VARIABLE_1 | awk '{print $1}') | gzip > VARIABLE_2.tar.gz

這樣人們就可以簡單地輸入tarpb VARIABLE_1 VARIABLE_2?或只能透過腳本來實現?

答案1

有一個中間方法,使用函數。在您的 中.bashrc,您可以定義一個函數來執行此操作:

tarbp() {
  input=$1
  output=$2
  tar cf - /"${input}" -P | pv -s "$(du -sb /"${input}" | awk '{print $1}')" | gzip > "${output}".tar.gz
}

$1$2是傳遞給函數的第一個和第二個參數。

重新啟動 shell(或重新載入.bashrc)後,您可以像常規命令一樣使用該函數:

tarbp input output

(Ubuntu 甚至對此進行了 bash 補全)

相關內容