我知道如何在bash中配置别名,但有没有办法为一系列命令配置别名?
例如,我希望一个命令更改为特定目录,然后运行另一个命令.
另外,有没有办法设置一个运行"sudo mycommand"的命令,然后输入密码?在MS-DOS时代,我会寻找一个.bat文件,但我不确定linux(或者在本例中是Mac OSX)的等效版本.
我知道如何在bash中配置别名,但有没有办法为一系列命令配置别名?
例如,我希望一个命令更改为特定目录,然后运行另一个命令.
另外,有没有办法设置一个运行"sudo mycommand"的命令,然后输入密码?在MS-DOS时代,我会寻找一个.bat文件,但我不确定linux(或者在本例中是Mac OSX)的等效版本.
你提到了BAT文件,所以也许你想写一个shell脚本.如果是这样的话,只需将您想要的命令逐行输入一个文件,如下所示:
command1
command2
并要求bash执行该文件:
bash myscript.sh
如果希望能够在不键入"bash"的情况下直接调用脚本,请将以下行添加为文件的the first line行:
#! /bin/bash
command1
command2
然后将文件标记为可执行文件:
chmod 755 myscript.sh
现在,您可以像运行任何其他可执行文件一样运行它:
./myscript.sh
请注意,unix并不真正关心文件扩展名.如果愿意,您可以简单地将文件命名为"myscript",而不使用扩展名".sh".重要的是那条特别的第一行.例如,如果想用Perl编程语言而不是bash编写脚本,第一行应该是:
#! /usr/bin/perl
第一行告诉shell要调用什么解释器来执行脚本.
此外,如果现在将脚本复制到$PATH环境变量中列出的一个目录中,则只需键入其文件名即可从任何地方调用它:
myscript.sh
甚至连制表符都可以.这就是为什么我通常在$PATH中包含一个~/bin目录,这样我就可以轻松地安装个人脚本.最重要的是,一旦你有了一堆你已经习惯的个人脚本,你就可以通过复制你的个人~/bin目录,轻松地将它们移植到任何一台新的unix机器上.