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

    参考资料

  • 相关阅读:
    Flask从入门到入土
    flask请求上下文源码分析
    python事件调度库sched
    go中简单使用kafka
    python下使用ElasticSearch
    numpy+pandas+matplotlib+tushare股票分析
    functools模块中partial的使用
    乐观锁与悲观锁
    mysql的服务器构成
    redis事件监听及在订单系统中的使用
  • 原文地址:https://www.cnblogs.com/chenjo/p/11145021.html
Copyright © 2011-2022 走看看