是否可以为 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 补全)

相关内容