日期:2014-05-16  浏览次数:20707 次

新手询问一个shell编程问题
我想提取文本中每行的指定字段,然后将字段作为参数执行。字段之间的切腹是多个空格,这个怎么写。
我写了个下面这样的,为什么不行啊

文件 类似 123   345 565 33 33 33

IFS=""

while read key shmid owner perms bytes nattch 
do
    echo "$key $shmid $perms $nattch"
#echo 123 
    ipcrm -m $sh
done </tmp/shm.tmp

------解决方案--------------------
dear IFS should use ' not "
so 
you need to write to
IFS=' ' 
------解决方案--------------------
你这个语句没啥错,改了一点点:
IFS=" " # <- 引号里是空格

while read key shmid owner perms bytes nattch
do
    echo "key: $key shmid: $shmid perms: $perms nattch: $nattch"
    #echo 123
    # ipcrm -m $sh <- 你这个 sh 变量不存在嘛
done </tmp/shm.tmp