zoukankan      html  css  js  c++  java
  • shell脚本函数名不能使用Linux关键字或命令

    举例:
    手工执行打包命令是ok的,但使用脚本没有结果

    #!/bin/bash
    # 定时任务调用,打包备份
    tar(){
        tar -zcf /backup/`date +%F`_`hostname`_etc.tar.gz /etc/ &>/dev/null
    }
    main(){
        tar
    }
    main
    
    [root@proxy1 backup]# sh /server/scripts/tar-etc.sh 
    [root@proxy1 backup]# pwd
    /backup
    [root@proxy1 backup]# ls
    [root@proxy1 backup]# 
    # 没有执行ok
    

    原因就是函数名使用了shell的tar命令

    将函数名改为"tar_etc"执行:

    #!/bin/bash
    # 定时任务调用,打包备份
    tar_etc(){
        tar -zcf /backup/`date +%F`_`hostname`_etc.tar.gz /etc/ &>/dev/null
    }
    main(){
        tar_etc
    }
    main
    
    [root@proxy1 backup]# sh /server/scripts/tar-etc.sh 
    [root@proxy1 backup]# ls
    2020-11-03_proxy1_etc.tar.gz
    # 结果运行ok
    
    作者:ccku
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。如有问题或建议,请多多赐教,非常感谢。
  • 相关阅读:
    codeforces-1194 (div2)
    单链表1(悲剧文本)
    迷宫(深度搜索)
    皇后问题
    关键路径
    [NOI2015]软件包管理器
    [USACO13JAN]岛游记Island Travels
    仓鼠找sugar
    [SHOI2012]魔法树
    [HEOI2016/TJOI2016]树
  • 原文地址:https://www.cnblogs.com/ccku/p/13954825.html
Copyright © 2011-2022 走看看