shell 脚本学习及 troubleshooting
Shell 问题一:
$ FILENAME="My Document" 含有空格的文件名
$ ls $FILENAME 列出来试试
ls: My: No such le or directory 糟了! ls 见到两个参数
ls: Document: No such le or directory
$ ls -l "$FILENAME" 这样才对
My Document ls 只见到一个参数
===============================================
=====
Shell 问题二
如果变量名称与另一个字符串紧接在一起,则必须以一对花括号界定,以免
发生意料外的情况:
$ HAT="fedora"
$ echo "The plural of $HAT is $HATs"
The plural of fedora is 糟了!没“HATs”这个变量
$ echo "The plural of $HAT is ${HAT}s"
The plural of fedora is fedoras 这才是我们要的结果
===============================================
=====
grep 匹配多个字符串时有一下两个种方法:
(1) egrep –i ‘read|enter’ read.sh
(2)vi string.txt
read
enter
grep –f string.txt read.sh
以上两种方法是 grep 满足其中一个字符串都匹配,那能不能同时满足多个字符串时才匹
配呢?看下例子:
grep –i hostname /etc/* | grep –i “loongson.cn”
只有一行里同时满足存在 hostname 和 loongson.cn 才匹配。
nd 和 grep 的配合使用,防止对多余的文件类型的检索。如下;
nd /etc –type f |xargs grep –i addr | grep –i “10.2.5.200”
===============================================
=====
echo 'What would you like to do?'
read answer
case "$answer" in 受测对象为 answer 变量
eat)
echo "OK, have a hamburger"
;;
sleep)
echo "Good night then"