将一个命令别名为另一个命令

将一个命令别名为另一个命令

我正在尝试在 bash 中创建一个别名,例如:

别名 cat /home/file='cat /home/thisfile'

我不知道为什么这不管用。我尝试在谷歌上寻找答案,据我所知,这个网站会找到答案。-Janice

答案1

您只能对命令使用别名,而不能对其参数使用别名。

如果您想要/home/file被替换/home/thisfile,但只有当它是命令的第一个参数时cat,您可以定义一个cat函数来测试其参数并适当地调用底层命令:

cat () {
  if [ "$1" = "/home/file" ]; then shift; set "/home/thisfile" "$@"; fi
  command cat "$@"
}

但我怀疑这是否是你真正想要的,这将是一个奇怪的要求。丹尼尔·贝克的象征性建议听起来很正确。既然你拒绝了,你应该更多地解释你想要实现的目标。也许这样人们就能提出更好的建议。

答案2

您不能使用包含两个单词的别名,而是使用函数并使用 awk 来分隔捕获。

相关内容