gpt4 book ai didi

linux - 比较字符串时出现问题 (BASH)

转载 作者:太空宇宙 更新时间:2023-11-04 05:25:27 25 4
gpt4 key购买 nike

我正在尝试比较两个字符串。一个来自通过 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) (至少在我的系统上)。因此,您应该用制表符替换该空格字符。

关于linux - 比较字符串时出现问题 (BASH),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32928513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com