Updateon202092211:07AM:
感谢518 私信和tinyfish(11楼大佬)的解答,大佬们已帮助找到问题,目前Bug已成功解决,就是子函数后面不能接管道符,否则子函数里面的变量赋值不生效。
支付宝已转给最先私信给我的“518”大佬。 再次感谢!
最近在改前同事的备份脚本(提前说明,本人Shell菜鸡,代码惨不忍睹,大佬勿嘲)
备份代码倒是都OK,就是有一个小Bug:
废话不多说,代码先附上:
https://cowtransfer.com/s/a3f91195571444
Bug:
我用bash-x看到实际上在start_backup()函数里已经给变量赋值成功了:
backup_result="成功"
backup_file_size="700M"
但是send_msg()函数里调用上面两个函数,返回的是初始值:
backup_result="Unknown"
backup_file_size="Unknown"
最终跑起来的输出结果如下:
数据库备份信息:
备份结果:Unknown
备份开始时间:2020-09-1810:51:40
备份花费时间:0秒
备份文件大小:Unknown
全量备份状态:未执行
哪位大佬点一下怎样正确输出${备份结果}和${备份文件大小}变量值。
-----------------------------------------------------
网友回复:
引用:aria2net发表于2020-9-2116:59
改这种祖传代码,你居然只给10元?
网友回复:
引用:ABCHINA发表于2020-9-2117:27
exit500改成0-255
网友回复:
成功失败1和0表示就行了吧。中文会不会容易有问题。显示的时候根据1和0判断成功还是失败
网友回复:
send_msg"/backups/logs/backup_info_$today.log"改成send_msg
网友回复:
get_script_run_time
curlhttp://oapi.dingtalk.com/robot/send?access_token=***
-HContent-Type:application/json
-d{"msgtype":"text",
"text":{
"content":"数据库备份信息:
备份结果:"$backup_result"
备份开始时间:"$backup_start_time"
备份花费时间:"$backup_used_time"秒
备份文件大小:"$backup_file_size"
全量备份状态:"$full_backup_result"
"$msg""
}
}
这段代码剪切放到
Deletebackupfiles15daysago
前面然后跑一下我看下结果
网友回复:
找到了,start_backup$day后面不能加管道,否则变量被改掉的值不会被更新……业余小白一个,也是第一次见到这种情况
补图。测试用的网站是:https://repl.it/languages/bash/
网友回复:
引用:tinyfish发表于2020-9-2118:23
找到了,start_backup$day后面不能加管道,否则变量被改掉的值不会被更新……业余小白一个,也是第一次见...
网友回复:
引用:tinyfish发表于2020-9-2118:23
找到了,start_backup$day后面不能加管道,否则变量被改掉的值不会被更新……业余小白一个,也是第一次见...