Linux shell 脚本中使用 alias 定义的别名

核心知识点: 用 shopt 开启和关闭 alias 扩展

交互模式下alias 扩展默认是开启的,脚本模式下默认是关闭的 ****
alias 扩展的名称是 expand_aliases

alias 定义

在当前session中,可以直接在命令行执行 alias alias-name-define="xxxx"

比如:

[email protected]/9 $ alias aliasTest="echo Hello world"

[email protected]/9 $ aliasTest
Hello world

如果想要永久保存定义的alias,可以将其写入到 /etc/profile 或者 ~/.bash_rc 中去,两个的区别是影响的范围不一样而已

[email protected]/9 $ vim ~/.bash_rc 

[email protected]/9 $ tail -1 ~/.bash_rc
alias aliasTest="echo Hello world"

打开新的session 在命令行先执行source ~/.bash_rc 再执行 aliasTest 输出同样的结果

在脚本中使用 alias

先看执行的结果

[[email protected] ~]# ./test.sh
如果alias是在~/.bash_rc等文件中定义,需要先执行 source ~/.bash_rc
检查默认情况下shell脚本中是否开启alias扩展
expand_aliases  off
默认情况下执行定义的alias
./test.sh: line 8: aliasTest: command not found
shell中开启alias扩展
shell中开启alias扩展之后检查
expand_aliases  on
shell中开启alias扩展之后,使用alias别名
Hello world
[[email protected] ~]#

再研究具体的脚本

# cat test.sh
echo  "如果alias是在~/.bash_rc等文件中定义,需要先执行 source ~/.bash_rc"
source /root/.bash_rc

echo "检查默认情况下shell脚本中是否开启alias扩展"
shopt expand_aliases   

echo "默认情况下执行定义的alias"
aliasTest

echo "shell中开启alias扩展"
shopt -s  expand_aliases  

echo "shell中开启alias扩展之后检查"
shopt expand_aliases   

echo "shell中开启alias扩展之后,使用alias别名"
aliasTest

附加

(执行 help shopt 可以查看该shell内置命令的帮助信息)

Command Desc
shopt -s opt_name Enable (set) opt_name
shopt -u opt_name Disable (unset) opt_name
shopt opt_name Show current status of opt_name

参考资料

原文地址:https://www.cnblogs.com/chenjo/p/11145021.html

时间: 2024-10-10 07:48:15

Linux shell 脚本中使用 alias 定义的别名的相关文章

Linux shell脚本中shift的用法说明

Linux shell脚本中shift的用法说明 shift命令用于对参数的移动(左移),通常用于在不知道传入参数个数的情况下依次遍历每个参数然后进行相应处理(常见于Linux中各种程序的启动脚本). 示例1:依次读取输入的参数并打印参数个数: run.sh: #!/bin/bash while [ $# != 0 ];do echo "第一个参数为:$1,参数个数为:$#" shift done 输入如下命令运行:run.sh a b c d e f 结果显示如下: 第一个参数为:a

Linux shell脚本中调用另一个shell(exec、source、fork)

  在运行shell脚本时候,有三种方式来调用外部的脚本,exec(exec script.sh).source(source script.sh).fork(./script.sh) exec(exec /home/script.sh): 使用exec来调用脚本相当于在当前shell执行了一条命令,不会产生新的进程,被执行的脚本会继承当前shell的环境变量.但是当exec调用完毕后,当前shell也会结束,剩下的代码不会执行. source(source /home/script.sh) 使

学习Linux shell脚本中连接字符串的方法

这篇文章主要介绍了Linux shell脚本中连接字符串的方法,如果想要在变量后面添加一个字符,可以用一下方法: 代码如下: $value1=home $value2=${value1}"=" echo $value2 把要添加的字符串变量添加{},并且需要把$放到外面. 这样输出的结果是:home=,也就是说连接成功. 又如代码如下: [[email protected] sh]# var1=http://www.3lian.com/etc/ [[email protected] s

Unix/Linux shell脚本中 “set -e” 的作用

"set -e" 是什么? 如下脚本: #!/bin/bash set -e command 1 command 2 ... 在脚本开头加上set -e,这句语句告诉bash如果任何语句的执行结果不是true则应该退出. "set -e" 作用是什么? (1)使用-e帮助你检查错误: (2)防止错误像滚雪球般变大导致一个致命的错误,而这些错误本应该在之前就被处理掉: (3)如果要增加可读性,可以使用set -o errexit,它的作用与set -e相同: &quo

linux shell脚本中的延时

linux shell脚本中的延时 还是使用 sleep 或usleep函数. 详细如下:     1.sleep : 默认为秒. sleep 1s 表示延迟一秒   sleep 1m 表示延迟一分钟   sleep 1h 表示延迟一小时   sleep 1d 表示延迟一天        2.usleep : 默认以微秒.   1s = 1000ms = 1000000us 原文地址:https://www.cnblogs.com/sea-stream/p/12076906.html

linux shell脚本中的开头#!/bin/bash的含义

对于linux上需要执行 的shell脚本,通常第一行的内容是 #!/bin/bash 当然有很多时候不规范的写法可以忽略掉这一句,执行起来好像也是ok,结果没什么不一样 .. 这只是因为在我们常用 的linux系统上默认都是执行/bin/bash来执行我们的shell脚本,但是如果有些用户使用的是csh,那么缺少第一行的“#!/bin/bash的shell脚本执行结果就可能存在语法不兼容的问题,导致结果异常或者根本不能执行. Shell脚本和我们常用的C语言或者C++语言编写编译出来的bin执

Linux shell脚本中如何读取跟shell脚本同一目录下的配置文件

配置文件如下 ##########BACKUP MYSQL CONFIG####### #database name db_name=test db_user=root db_pass=123456 #####backup day config begin ##### day_backupdir=/home/backup/db/day day_backup_fix=day day_interval=1 #####backup day config end ####### #####backup 

Linux shell 脚本中”2>&1″的含义解释

脚本是:nohup /mnt/Nand3/H2000G  >/dev/null  2>&1 & 对于& 1 更准确的说应该是文件描述符 1,而1 一般代表的就是STDOUT_FILENO,实际上这个操作就是一个dup2(2)调用.他标准输出到all_result ,然后复制标准输出到文件描述符2(STDERR_FILENO),其后果就是文件描述符1和2指向同一个文件表项,也可以说错误的输出被合并了.其中0 表示键盘输入 1表示屏幕输出 2表示错误输出.把标准出错重定向到

Linux shell脚本基础学习详细介绍(完整版)一

Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Linux 脚本编写基础◆1.1 语法基本介绍 1.1.1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在这个例子中我们使用/bin/sh来执行程序. 当编辑好脚本时,如果要执行该脚本,还必须使其可执行. 要使脚本可执