awk
执行命令时出现错误
echo $(awk 'BEGIN {printf "%.2f\n",'$sizes'/1073741824}')GB >> $MAINS/logs/bks1
这是为了将整数转换为大小(GB)。但我遇到这样的错误
awk: cmd. line:1: BEGIN {printf "%.2f GB\n",/1073741824}
awk: cmd. line:1: ^ unterminated regexp
awk: cmd. line:1: BEGIN {printf "%.2f GB\n",/1073741824}
awk: cmd. line:1: ^ unexpected newline or end of string
有时效果很好
我应该在执行该命令之前添加睡眠吗?谢谢大家,感谢您的时间和帮助。
答案1
当sizes
变量为空时,它将被替换为空字符串,如预期的那样。在脚本的相关部分中,awk
期望任何以斜杠开头的字符串都是正则表达式的开头,但只有当它以另一个斜杠结尾时,它才是有效的正则表达式。您需要确保sizes
脚本不为空才能工作。
set -o nounset
收到脚本中未定义(非空)变量的通知,并结合使用以-o errexit
在出现此类错误时停止脚本。