返回顶部
首页 > 资讯 > 操作系统 >在Bash脚本中引入alias的方法
  • 918
分享到

在Bash脚本中引入alias的方法

Bash脚本引入aliasBash引入alias 2022-06-04 23:06:37 918人浏览 八月长安
摘要

alias的使用 在日常开发中,为了提高运维效率,我们会用alias(命令别名)来定义命令的简称。比如在~/.bash_profile中添加: alias ll='ls -lrt --color' alias bde

alias的使用

在日常开发中,为了提高运维效率,我们会用alias(命令别名)来定义命令的简称。比如在~/.bash_profile中添加:


alias ll='ls -lrt --color'
alias bdebug="Go build -GCflags '-N -l'"
alias py3='/usr/bin/python3'

执行source ~/.bash_profile之后,这些alias定义便载入到当前终端环境中,我们可以通过alias <cmd>进行查看


$ alias ll 
ll='ls -lrt --color'

$ alias bdebug
bdebug='go build -gcflags '\''-N -l'\'

在命令行执行alias也能看到预期效果


$ ll 
total 44
-rw-rw-r-- 1 liyang liyang  62 Sep 16 09:38 test.c
-rw-rw-r-- 1 liyang liyang  68 Sep 16 09:38 foo.h
-rw-rw-r-- 1 liyang liyang  74 Sep 16 09:38 foo.c
-rwxrwxr-x 1 liyang liyang 8592 Sep 16 09:44 libfoo.so
-rw-rw-r-- 1 liyang liyang 4347 Sep 16 09:44 o23.s
-rwxrwxr-x 1 liyang liyang 9451 Sep 16 09:45 test

在Bash脚本中引入alias的问题

但是有些时候,我们希望将~/.bash_profile中定义好的alias引入Bash脚本中,以便简化命令。例如

脚本文件test.sh


#!/bin/bash
source ~/.bash_profile
ll

执行test.sh文件却会报错


$ bash test.sh 
test.sh: line 5: ll: command not found

这是因为在Bash中,alias默认是不能引入Bash脚本中的。Bash的官方文档其实更建议你使用function而非alias。那么问题来了,既然我辛辛苦苦写了这么多alias,总不能全部改成function吧,那得多费劲?

幸好,解决方法还是有的.

解决方法

只需要在test.sh中加入一行shopt -s expand_aliases

新的脚本文件


#!/bin/bash

shopt -s expand_aliases
source ~/.bash_profile
ll

执行一下,果然成功了,这是为什么呢?


$ bash test.sh 
total 48
-rw-rw-r-- 1 liyang liyang  62 Sep 16 09:38 test.c
-rw-rw-r-- 1 liyang liyang  68 Sep 16 09:38 foo.h
-rw-rw-r-- 1 liyang liyang  74 Sep 16 09:38 foo.c
-rwxrwxr-x 1 liyang liyang 8592 Sep 16 09:44 libfoo.so
-rw-rw-r-- 1 liyang liyang 4347 Sep 16 09:44 o23.s
-rwxrwxr-x 1 liyang liyang 9451 Sep 16 09:45 test
-rw-rw-r-- 1 liyang liyang  64 Mar 8 21:33 test.sh

关键在于shopt -s expand_aliases这句话,shopt是一个命令,使用它可以控制一些shell相关的开关:expand_aliases就是其中一个,当它被开启之后,Bash脚本中的所有命令别名alias都会被展开。

expand_aliases
If set, aliases are expanded as described below under Aliases, Aliases. This option is enabled by default for interactive shells.

总结

  • alias命令可帮助我们自定义命令别名,简化运维操作
  • 缺省情况下无法将终端环境中的alias引入到Bash脚本中
  • 通过shopt -s expand_aliases,可以解决上述问题。

参考

https://www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.html

到此这篇关于在Bash脚本中引入alias的方法的文章就介绍到这了,更多相关Bash脚本引入alias内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

--结束END--

本文标题: 在Bash脚本中引入alias的方法

本文链接: https://lsjlt.com/news/21297.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 在Bash脚本中引入alias的方法
    alias的使用 在日常开发中,为了提高运维效率,我们会用alias(命令别名)来定义命令的简称。比如在~/.bash_profile中添加: alias ll='ls -lrt --color' alias bde...
    99+
    2022-06-04
    Bash脚本引入alias Bash引入alias
  • 怎么在Bash脚本中引入alias方法
    本篇文章给大家分享的是有关怎么在Bash脚本中引入alias方法,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。alias的使用在日常开发中,为了提高运维效率,我们会用alias...
    99+
    2023-06-07
  • bash脚本中if语句的使用方法
    除了 "if,else" 形式之外,还有其它形式的 "if" 语句: if [ condition ]then actionfi 只有当 condition 为真时,该语句才执行操作,否则不执行操作,...
    99+
    2022-06-04
    使用方法 语句 脚本
  • Bash Shell脚本中数组的使用方法
    这篇文章主要介绍“Bash Shell脚本中数组的使用方法”,在日常操作中,相信很多人在Bash Shell脚本中数组的使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Bash Shell脚本中数组的使...
    99+
    2023-06-17
  • python调用bash shell脚本方法
    目录1. os.system()1.1. demo2. os.popen()2.1 demo3. commands模块4. subprocess4.1 demo1. os.syste...
    99+
    2024-04-02
  • Bash脚本中括号和反引号的使用
    目录示例讨论总结在 Bash 脚本中,我们经常需要引用变量或者命令的执行结果来作为文件的名字或者日志的输出,在脚本或者 Shell 中我们可以使用反引号 或者括号 () 来获取到变量的内容 示例 示例 1 获取日期的输...
    99+
    2022-06-04
    Bash 括号和反引号 Bash 括号 Bash 反引号
  • 在Bash脚本中创建和使用数组方法总结
    在Bash中定义一个数组 有两种方法可以在bash脚本中创建新数组。第一个是使用declare命令来定义一个Array。此命令将定义名为test_array的关联数组。 $ declare -a test_array ...
    99+
    2022-06-04
    Bash脚本 数组
  • bash脚本输入密码不回显问题的解决方法
    不绕圈子,揭晓答案:设置终端状态为“字符不回显”(如果你了解过termios的话,也一定听说过) 方法就是: stty -echo #设置输入字符不回显 #此处用read语句接收用户输入的内容 stty e...
    99+
    2022-06-04
    不回 解决方法 脚本
  • Bash脚本内置的调试方法技巧
    用 Bash 写的脚本也可以进行调试,和 Python,Perl 等解释型语言一样。新建一个名为 servinfo 的脚本并增加可执行权限: $ vi servinfo #!/bin/bash echo ...
    99+
    2022-06-04
    脚本 技巧 方法
  • 编写健壮的Bash脚本的方法教程
    这篇文章主要讲解了“编写健壮的Bash脚本的方法教程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“编写健壮的Bash脚本的方法教程”吧!shell脚本在运行异常时会受到非常大的影响。本文介绍...
    99+
    2023-06-09
  • Bash脚本:如何在Go中使用它?
    Bash脚本是一种非常常用的命令行工具,在Linux和Unix系统中被广泛使用。它可以帮助开发者自动化许多任务,从而提高生产力。但是,如果你正在使用Go语言,你可能会想知道如何在Go中使用Bash脚本。本文将介绍如何在Go中使用Bash脚...
    99+
    2023-06-24
    bash apache unix
  • 如何在Go语言中使用Bash脚本处理数组索引?
    在Go语言中,处理数组是一个常见的任务。使用Bash脚本处理数组索引是一种有效的方法。本文将介绍如何在Go语言中使用Bash脚本处理数组索引,并提供一些示例代码。 首先,我们需要了解一些Bash脚本的基础知识。在Bash脚本中,可以使用$...
    99+
    2023-06-21
    bash 索引 数组
  • 如何在Java中调用Bash脚本中的函数?
    Java和Bash都是广泛使用的编程语言,它们各有优势,Java在面向对象编程和跨平台方面非常强大,而Bash则在脚本编程和系统管理方面非常实用。在一些项目中,我们可能需要在Java代码中调用Bash脚本中的函数,这是一个比较常见的需求。本...
    99+
    2023-08-19
    函数 bash spring
  • python调用bash shell脚本的方法是什么
    本篇文章为大家展示了python调用bash shell脚本的方法是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1. os.system()help(os.system)1.1. d...
    99+
    2023-06-22
  • bash脚本截取字符串的两种方法
    目录方法一:位置截取方法二,左右按照字符串截断,#从做到右 ,%从右到左。方法一:位置截取 #bin/bash STR="1234567890asdfghjkl" echo "first character ${STR:...
    99+
    2023-02-02
    bash截取字符串
  • 有哪些Bash脚本内置的调试方法
    本篇内容介绍了“有哪些Bash脚本内置的调试方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!用 Bash 写的脚本也可以进行调试,和 Py...
    99+
    2023-06-09
  • Bash脚本中处理错误的常用方法有哪些
    这篇文章主要为大家分析了Bash脚本中处理错误的常用方法有哪些的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“Bash脚本中处理错误的常用方法有哪些”的知识吧...
    99+
    2023-06-28
  • Python中在脚本中引用其他文件函数的实现方法
    在导入文件的时候,Python只搜索当前脚本所在的目录,加载(entry-point)入口脚本运行目录和sys.path中包含的路径例如包的安装地址。所以如果要在当前脚本引用其他文件,除了将文件放在和脚本同...
    99+
    2022-06-04
    脚本 函数 文件
  • 如何在Java中使用Bash脚本函数?
    Java是一种广泛使用的编程语言,而Bash脚本则是一种常用的命令行脚本语言。在某些情况下,我们需要在Java程序中使用Bash脚本函数来完成一些特定的任务。本文将介绍如何在Java中使用Bash脚本函数,并提供相关示例代码。 一、什么是B...
    99+
    2023-08-19
    函数 bash spring
  • Shell脚本中引用、调用另一个脚本文件的2种方法
    在Java,Python中,可以用import的方式来进行脚本或模块之间调用,例如: >>> import math >>> math.sqrt(4) 2....
    99+
    2022-06-04
    脚本 种方法 文件
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作