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
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。如有问题或建议,请多多赐教,非常感谢。