
一般来说,这个状况应该是kernel的问题
SunOS跟一般Linux在行为上有很大的不同...甚至编译器(compiler)都不太一样
因为solaris 与Linux都属于Unix Like所以用类似的shell
至于解决...建议是改用csh会有比较多的功能
使用上比较符合深一层的shell 设计
for i in $a $b $c $ddo
echo $i
done
如果a b c d为字符串变量且含有空格,建议放在双引号中,写为 "$a" "$b" "$c" "$d"
这个需要更改 shell分隔符为换行在for循环之前修改IFS变量IFS=$'\n' OLDIFS="$IFS"for i in `find . `doecho "$i"doneIFS="$OLDIFS"这样循环就会以换行作为单词分界.你的文件名如果出现换行,那就无能为力。虽然linux 支持文件名包含特殊字符但并不推荐,会导致别的脚本出错误。通常用下划线或短线代替空格。还有一种用find some|while read idoecho "$i"done用read i,每个循环读取一行,等价与用换行作为分隔符。记得采纳欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)