在linux中,无法在for循环中对具有空间的值进行grep



我已经声明了一个数组

declare -a kernel_parms=("'kernel.shmmax ':4294967295:IBM" "'kernel.shmseg ':2048:AT" "'kernel.shmmni ':2048:BT" "'kernel.sem ':1024:IBM" "'kernel.semaem ':16384:IBM" "'kernel.semvmx ':32767:IBM" "'kernel.semmap ':1026:AT" "'kernel.semmnu ':16384:IBM" "'kernel.semume ':256:IBM" "'kernel.msgmni ':50:AT" "'kernel.msgmap ':1024:BT" "'kernel.msgmax ':4096:AT" "'kernel.msgmnb ':4096:AT")

我正在linux 中运行for循环

for ((i=0;i< ${#kernel_parms[@]};i++)); 
do  
echo "Param is" + "${kernel_parms[$i]}"
parm=`echo "${kernel_parms[$i]}" | gawk -F: '{print $1}'`
echo "${kernel_parms[$i]}"
echo $parm
sysctl -a | grep -i "$parm"
done

对于数组中的第一个条目,parm是"kernel.shmmax",但grep不会在循环内部返回任何结果,但如果我独立执行grep,则我会得到结果

# sysctl -a | grep -i 'kernel.shmmax '
kernel.shmmax = 18446744073692774399

for循环的输出为

Param is + 'kernel.shmmax ':4294967295:IBM
'kernel.shmmax ':4294967295:IBM
'kernel.shmmax '
Param is + 'kernel.shmseg ':2048:AT
'kernel.shmseg ':2048:AT
'kernel.shmseg '
Param is + 'kernel.shmmni ':2048:BT
'kernel.shmmni ':2048:BT
'kernel.shmmni '
Param is + 'kernel.sem ':1024:IBM
'kernel.sem ':1024:IBM
'kernel.sem '
Param is + 'kernel.semaem ':16384:IBM
'kernel.semaem ':16384:IBM
'kernel.semaem '
Param is + 'kernel.semvmx ':32767:IBM
'kernel.semvmx ':32767:IBM
'kernel.semvmx '
Param is + 'kernel.semmap ':1026:AT
'kernel.semmap ':1026:AT
'kernel.semmap '
Param is + 'kernel.semmnu ':16384:IBM
'kernel.semmnu ':16384:IBM
'kernel.semmnu '
Param is + 'kernel.semume ':256:IBM
'kernel.semume ':256:IBM
'kernel.semume '
Param is + 'kernel.msgmni ':50:AT
'kernel.msgmni ':50:AT
'kernel.msgmni '
Param is + 'kernel.msgmap ':1024:BT
'kernel.msgmap ':1024:BT
'kernel.msgmap '
Param is + 'kernel.msgmax ':4096:AT
'kernel.msgmax ':4096:AT
'kernel.msgmax '
Param is + 'kernel.msgmnb ':4096:AT
'kernel.msgmnb ':4096:AT
'kernel.msgmnb '

为什么grep没有在循环中返回任何匹配项?感谢您的帮助。

谢谢,Sagar

从字符串中去掉最后一个和第一个字符

使用上面的答案,我删除了变量的第一个和最后一个字符,这些字符是命令中的引号,现在显示的结果

内部修改为环路

sysctl -a | grep -i "${parm:1:-1}";

来自

sysctl -a | grep -i "$parm"; 

它就像魅力

最新更新