zoukankan      html  css  js  c++  java
  • Linux shell 脚本中使用 alias 定义的别名

    核心知识点: 用 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 found
    shell中开启alias扩展
    shell中开启alias扩展之后检查
    expand_aliases 	on
    shell中开启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

    参考资料

  • 相关阅读:
    Android学习 反编译APK文件
    全面剖析C#之String对象
    Retrieving the COM class factory for component with CLSID {0006F03A00000000C000000000000046} failed due to the following error: 80080005
    面向对象的函数式编程语言Scala 简介安装
    Export/Import相关操作
    Windows Server 2008 R2(64位)下安装SQL Server 2005
    C#操作FTP总结
    Windows Server 2008 R2(64位)下IIS7.5操作
    Quartz.Net 学习随手记之01 初步介绍
    差分约束系统
  • 原文地址:https://www.cnblogs.com/chenjo/p/11145021.html
Copyright © 2011-2022 走看看