linux - Bash中nohup运行时是否无法使用变量?
巴扎黑
巴扎黑 2017-04-17 11:40:58
[Linux讨论组]

写了一行脚本用来取Linux server上的几个网络数据,并用awk打上timestamp记录:

for ((i=0;i<5;i++)); do cat /sys/class/net/eth0/statistics/rx_bytes /sys/class/net/eth0/statistics/rx_packets | paste -d' ' - - | gawk '{print systime(), $0}'; sleep 2; done

输出:
1398132841 131363249 780043
1398132843 131367139 780066
1398132845 131371063 780095
1398132847 131375807 780120
1398132849 131381147 780164

但是当我用nohup来执行这条命令时好像就无法正常工作了:

sh -c "for ((i=0;i<5;i++)); do cat /sys/class/net/eth0/statistics/rx_bytes /sys/class/net/eth0/statistics/rx_packets | paste -d' ' - - | gawk '{print systime(), $0}'; sleep 2; done" > /tmp/net_stat.log &

输出:
1398132882 0
1398132884 0
1398132886 0
1398132888 0
1398132890 0

是不是$0这个变量在nohup运行环境中无法使用的原因?有没有什么解决办法?谢谢!

巴扎黑
巴扎黑

全部回复(1)
PHP中文网

nohup 在哪里?

你看代码高亮,其中的 $0 在最外层的 "" 已经被展开了,也就是,gawk 得到的是诸如 {print systime(), -bash} 这样的字符串(具体是什么与你的 shell 及启动方式有关)。你转义一下写成 \$0

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号