[英]Problems comparing strings (BASH)
我正在尝试比较 2 个字符串。 一个来自通过 grep 命令的文件,另一个永远不会改变,因为我总是将它与我在阅读文件文本时创建的文件进行比较。 如果它们相等,程序应该打印与新字符串包含的内容相关联的数据。 我已经尝试了 bash 允许的所有语法(因为我是 bash 新手),但它并没有像我预期的那样工作。 看起来第二个if
不起作用,因为我之前尝试过没有它并且只打印字符串( echo $text
)并且它起作用了,但不是我正在做的练习要求的正确方法。 我必须在控制台中只显示正在运行的进程的 pid 和状态。
cd
cd /proc
run="State: S (sleeping)"
for i in $( ls -d */);
do
cd $i
if [ -f /proc/$i/status ];
then text="`grep -w "S" status`"
if [ "$text" == "$run" ]
then grep -w "Pid" status
grep -w "State" status
fi
cd /proc
else cd /proc
fi
done
;;
您的run
变量包含State:<space>S (sleeping)
,但/proc/<pid>/status
文件包含State:<tab>S (sleeping)
(至少,在我的系统上)。 所以你应该用制表符替换那个空格字符。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.