当前位置: 首页 > 面试题库 >

如何将bash别名定义为多个命令的序列?

巫马安怡
2023-03-14
问题内容

我知道如何在bash中配置别名,但是有没有办法为一系列命令配置别名?

也就是说,我希望一个命令更改为特定目录,然后运行另一个命令。

另外,是否可以设置运行“ sudo mycommand”的命令,然后输入密码?在MS-DOS时代,我会寻找一个.bat文件,但是我不确定Linux(或Mac
OSX)是否等效。


问题答案:

您提到了BAT文件,所以也许您想要的是编写Shell脚本。如果是这样,则只需将要逐行输入的命令输入到文件中,如下所示:

command1
command2

并要求bash执行文件:

bash myscript.sh

如果您希望无需输入“ bash”就可以直接调用脚本,则将以下行添加为文件 的第一行

#! /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机器上。



 类似资料:
  • Microsoft在Windows应用商店发布了Windows终端的预览版本,该版本允许使用PowerShell、命令提示符和Bash(使用Linux的Windows子系统)处理命令。 由于PowerShell是默认处理器,每次启动终端时,我需要再次更改它以LinuxBash。 是否可以将默认处理器定义为Linux,而不是反复重置它?

  • 我有一个表,它有列[col1、col2、col3....col9]。我想在Python中把所有列数据合并到一个列中作为col?

  • 我正在尝试用docker容器中的一个表建立一个数据库。为了正确运行数据库,我需要运行以下命令: bash:--:无效选项db_1用法:bash[GNU long option][option]... db_1 bash[GNU long option][option]脚本-文件... db_1 GNU long options: db_1--debugg db_1--debugger\ 如果“ba

  • complete命令介绍 linux和mac系统自带的complete命令非常强大,用法例如complete -F _ps ps表示当我们输入ps命令后会执行_ps这个函数来做补全,虽然强大但不容易使用,需要一些辅助工具帮我们做一些封装的工作 安装bash-completion bash-completion是封装了complete命令的一套脚本(也为我们写好了一些常用命令的补全,但还不够) ma

  • 问题内容: 我在Mac上,并且编写了很多python脚本。 每次我需要运行它们时,都必须输入“ ”。我有办法做到吗,所以只需要输入’ ‘?这将节省一些时间:D 问题答案: 我假设您是从命令行运行脚本的,对吗?如果是这样,请将以下行添加为脚本的第一行: 或者 如果python命令不在中,然后在Unix /终端提示符下发出以下命令一次(这会使您的脚本“可执行”): 从那时起,您只需要在命令提示符下键入