如何在Linux中定义自定义Shell命令?

3
我想简单定义一个自定义的shell命令,例如:
我输入abc,它将输出一些文本。 就像这样:
$ abc
The quick brown fox jumps over the lazy dog.
  • 如何在Linux中简单实现?
4个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
7
你还应该考虑学习bash函数,这样你就可以拥有更多的功能。
 function abc () {
   echo The quick brown fox jumps over the lazy dog.
 }

正如其他人告诉你的那样,你也可以使用bash的alias内置命令。

您可能希望删除bash特定的function关键字,以便在其他Posix shell中移植。

在bash中使用函数的主要优点是它们可以接受一些参数,并且比alias更加复杂。


1
请注意,关键字“function”不是必需的,也不具有可移植性。只需省略它即可在任何Bourne shell中运行。 - William Pursell
谢谢。我已经添加了一条关于此事的注释。 - Basile Starynkevitch
只要您在函数中不使用任何其他 Bash 特性,就可以省略它以在任何 Bourne shell 中运行,这样您就面临着传统支持和最新、最特别版本的漂亮功能之间的选择。 - dmckee --- ex-moderator kitten

5
尝试使用别名(alias)
alias abc="echo The quick brown fox jumps over the lazy dog."
你可以将它添加到你的~/.bash_profile中,这样它就会在所有会话中生效。

这是永久的吗?如果我重新启动机器会怎样?(或者)有没有存储该别名命令的设置/配置文件? - 夏期劇場
@4lvin 是的。在Mac OSX中,您可以将其放入/.bash_profile;在Ubuntu或其他Linux系统中,您可以将其放入/.bashrc。 - Yuanhang Guo

1

别名 abc='echo The quick brown fox jumps over the lazy dog.'


这是永久的吗?如果我重新启动我的机器会怎样?还有存储那些别名命令的设置/配置文件吗? - 夏期劇場
@4lvin:将其放入您的~/.bashrc或等效位置。 - tommyo
将其添加到.login文件或.bashrc文件中。 - Vijay

1

如果我理解你的要求正确,你可以使用alias命令来实现。

alias abc='echo "testing"'

这是永久的吗?如果我重新启动我的机器会怎样?还有存储那些别名命令的设置/配置文件吗? - 夏期劇場
这不是永久性的。当您重新启动时,它将消失。为了克服这个问题,您可以在.bashrc(位于您的主目录中)中设置此别名。 - Raghuram

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,