https://www.cnblogs.com/chenjo/p/11145021.html

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

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

alias 定义

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

比如:

root@pts/9 $ alias aliasTest="echo Hello world"

root@pts/9 $ aliasTest

Hello world

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

root@pts/9 $ vim ~/.bash_rc

root@pts/9 $ tail -1 ~/.bash_rc

alias aliasTest="echo Hello world"

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

在脚本中使用 alias

先看执行的结果

[root@node1 ~]# ./test.sh

如果alias是在~/.bash_rc等文件中定义,需要先执行 source ~/.bash_rc

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

expand_aliases off

默认情况下执行定义的alias

./test.sh: line 8: aliasTest: command not foundshell中开启alias扩展shell中开启alias扩展之后检查

expand_aliases onshell中开启alias扩展之后,使用alias别名

Hello world

[root@node1 ~]#

再研究具体的脚本

# 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

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

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

    这篇文章主要介绍了Linux shell脚本中连接字符串的方法,如果想要在变量后面添加一个字符,可以用一下方法: 代码如下: $value1=home $value2=${value1}"= ...

  2. Linux shell脚本中shift

    Linux shell脚本中shift的用法说明 shift命令用于对参数的移动(左移),通常用于在不知道传入参数个数的情况下依次遍历每个参数然后进行相应处理(常见于Linux中各种程序的启动脚本). ...

  3. Linux shell脚本中shift的用法说明【转】

    本文转载自:http://blog.csdn.net/zhu_xun/article/details/24796235 Linux shell脚本中shift的用法说明 shift命令用于对参数的移动 ...

  4. linux shell脚本中的延时

    linux shell脚本中的延时 还是使用 sleep 或usleep函数. 详细如下:     .sleep : 默认为秒. sleep 1s 表示延迟一秒   sleep 1m 表示延迟一分钟 ...

  5. linux shell脚本中使用expect(脚本打开新终端自动远程连接顺便输一点指令)(巨坑)

    放弃吧 我找了六个小时都没找到可以用的方案(指标题括号里的内容) 给个曲线救国的方法: 现把expect脚本写成一个文件 在另一个shell脚本中调用

  6. 在shell脚本中使用alias

    Linux shell有交互式与非交互式两种工作模式.我们日常使用shell输入命令得到结果的方式是交互式的方式,而shell脚本使用的是非交互式方式.   shell提供了alias功能来简化我们的 ...

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

    对于linux上需要执行 的shell脚本,通常第一行的内容是 #!/bin/bash 当然有很多时候不规范的写法可以忽略掉这一句,执行起来好像也是ok,结果没什么不一样 .. 这只是因为在我们常用 ...

  8. Linux shell 脚本中变量的数学计算【转】

    本文转载自:http://blog.csdn.net/qinghezhen/article/details/9194287 首先从一个例子说起: x=1+1 echo $x 你是不是期待着输出2啊?让 ...

  9. Linux Shell脚本中获取本机ip地址方法

    ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"​ 命令解释 ...

随机推荐

  1. 【Linux】【CentOS7】免密登录突然失效

    [报错解决]免密登录突然失效 哔哩哔哩 萌狼蓝天 博客:萌狼工作室-博客园 [问题描述] 原本配置好了的免密登录,今天启动hadoop发现免密登录失效了 [解决方案] 1.切换到管理员模式,进入配置文 ...

  2. Python连接MySQL数据库获取数据绘制柱状图

    一.Python通过pymysql包获取MySQL数据库中的数据(没有对应包的可以通过pip install pymysql 安装对应的包) import matplotlib.pyplot as p ...

  3. 20个ios登陆界面

    原文:http://favbulous.com/post/1001/24-unique-ios-login-screen-showcase Eeve Evernote Food Recood Hips ...

  4. sctf_2019_easy_heap(off-by-null在2.27的利用)

    题目的例行检查我就不放了 将程序放入ida中 漏洞也较为明显 可以看到 if这里多一个null ,明显的off by null 漏洞 程序在最开始的地方给了我们一个很大的空间,并且权限是rwx,所以我 ...

  5. OpenWrt之关闭IPv6

    目录 OpenWrt之关闭IPv6 1.前言 2.WAN口设置 3.LAN口设置 4.保存并应用 5.防火墙设置 6.DHCP/DNS设置 1)SSH连接路由器 2)输入第一条命令,按回车执行 3)输 ...

  6. [源码解析] PyTorch 分布式(18) --- 使用 RPC 的分布式管道并行

    [源码解析] PyTorch 分布式(18) --- 使用 RPC 的分布式管道并行 目录 [源码解析] PyTorch 分布式(18) --- 使用 RPC 的分布式管道并行 0x00 摘要 0x0 ...

  7. .NET 云原生架构师训练营(建立系统观)--学习笔记

    目录 目标 ASP .NET Core 什么是系统 什么是系统思维 系统分解 什么是复杂系统 作业 目标 通过整体定义去认识系统 通过分解去简化对系统的认识 ASP .NET Core ASP .NE ...

  8. 背水一战——CSP2021/NOIP2021 游记

    洛谷 version 转载本文章的其他链接: 1(S00021 提供) 2(Ew_Cors 提供) \[\texttt{2021.9.10} \] 终于开坑了. 笑死,初赛根本还没开始复习,反正初赛也 ...

  9. 5款超实用的.NET性能分析工具

    虽然.NET框架号称永远不会发生内存泄漏,原因是引入了内存回收机制.但在实际应用中,往往我们分配了对象但没有释放指向该对象的引用,导致对象永远无法释放.最常见的情况就是给对象添加了事件处理函数,但当不 ...

  10. Add File as a Link on Visual Studio

    https://stackoverflow.com/questions/18963750/add-file-as-a-link-on-visual-studio-debug-vs-publish Ev ...