linux – 如何通过引号运行bash脚本
发布时间:2020-12-13 23:09:13 所属栏目:Linux 来源:网络整理
导读:我正在尝试为我的机器上运行的matlab作业安装一个轻量级内存分析器.有一个或零个matlab作业实例,但其进程ID经常更改(因为它实际上是由另一个脚本调用). 所以这是我放在一起记录内存使用情况的bash脚本: #!/bin/bashpid=`ps aux | grep '[M]ATLAB' | awk '{p
我正在尝试为我的机器上运行的matlab作业安装一个轻量级内存分析器.有一个或零个matlab作业实例,但其进程ID经常更改(因为它实际上是由另一个脚本调用).
所以这是我放在一起记录内存使用情况的bash脚本: #!/bin/bash pid=`ps aux | grep '[M]ATLAB' | awk '{print $2}'` if [[ -n $pid ]] then grep VmSize /proc/$pid/status else echo "no pid" fi 当我像这样在bash中运行这个脚本时: ./script.sh 它工作正常,给我以下结果: VmSize: 1289004 kB 这正是我想要的. 现在,我想定期运行它.所以我用手表运行它,像这样: watch ./script.sh 但在这种情况下我只收到: no pid 请注意,我知道matlab工作仍在运行,因为我可以在顶部看到相同的pid,而且,我知道每个matlab工作需要几个小时才能完成. 我很确定设置pid时的引号有问题.我只是无法弄清楚如何解决它.谁知道我做错了什么? PS. 解决方法
这个
pid=`ps aux | grep '[M]ATLAB' | awk '{print $2}'` 可以改为: pid=$(pidof MATLAB) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |