4.shell脚本程序中的用户切换:
切换到另一个用户,执行几个操作然后退出来,整个过程不退出脚本执行
解答:
su -bin -c command arguments
5.shell中删除文件且不显示输出信息和出错信息
解答;
rm ${HOME}/bin/.filesize > /dev/null 2>&1
>为重定向符号,2>&1表示标准错误输出定向到标准输出,又由于标准输出被定向到/dev/null,所以两者都被定向导/dev/null。
6.shell变量赋初值时存在特殊字符
以下程序无法正常运行:
name=”test”
pwd=”$google”
ftp -in $1 <<FTP_CMD
user $name $pwd
ls
bye
FTP_CMD
原因是$是特殊字符。解决方法,使用单引号’
pwd=’$google’
建议:字符串赋初值均采用单引号’
7.sed的参数串中存在/特殊字符
需要把 /export/home/mywork 转换为 \/export\/home\/mywork
先构造转化如下:
echo "/export/home/mywork" | sed "s/\//\\\//g"
在bsh和ksh下不能运行,在csh下可正常运行。
原因是对sed的表达式的解析不能完成。解决方法,使用单引号’
echo "/export/home/mywork" | sed 's/\//\\\//g'
建议:对sed的表达式均采用单引号’