一叶知秋.

业精于勤,荒于嬉;行成于思,毁于随。

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
posted @ 2020-11-10 17:08  ccku  阅读(353)  评论(0编辑  收藏  举报