我试图比较2个字符串。一个来自一个文件通过grep命令而另一个永远不会改变,因为我总是将它与我在读取文件文本时创建的那些进行比较。如果它们相等,程序应该打印与新字符串包含的内容相关联的数据。我已经尝试了bash允许的所有语法(因为我在bash中是新手),但它并没有像我预期的那样工作。它看起来像第二个if
不起作用,因为我之前没有尝试过,只打印字符串(echo $text
)并且它有效,但不是正确的方式作为练习I&#39我要求的。我必须在控制台中只显示正在运行的进程的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
;;
答案 0 :(得分:0)
您的values()
变量包含run
,但State:<space>S (sleeping)
个文件包含/proc/<pid>/status
(至少在我的系统中)。所以你应该用制表符替换那个空格字符。