1.在e c h o命令输出之后附加换行,可以使用\ n选项:
echo -e "hello\n\n\n"
2.在e c h o语句中使用跳格符,记住别忘了加反斜杠\:
- echo -e "here is a tab\there are two tabs\t\tok"
结果:
- here is a tab here are two tabs
3. 把一个字符串输出到文件中,使用重定向符号>。
在下面的例子中一个字符串被重定向到一个名为m y f i l e的文件中:
echo "hello" > myfile
在下面的例子中一个字符串被重定向到一个名为m y f i l e的文件中:
echo "hello" > myfile
4.或者可以追加到一个文件的末尾,这意味着不覆盖原有的内容:
echo "hello">>myfile
输出变
- echo "$LOGNAME carried them out at `date`">>myfile
-
- 结果:
-
- m y f i l e文件中的内容:
The log files have all been done
sam carried them out at 六 11月 13 12:54:32 CST 2004
假设你希望使用e c h o命令输出这样的字符串:“/ d e v / r m t 0”,那么我们只要在引号前面加上反斜杠\即可:
- $ echo "\"/dev/rmt0"\"
- "/dev/rmt0"
- $
- $ echo "\"/dev/rmt0"\"
-
-
-
- 1()与{}区别
-
-
-
-
-
-
-
-
-
-
- (cmd1;cmd2;...;cmdN)#在一个子shell里执行一组命令
- {cmd1;cmd2;...;cmdN}# 在当前shell里执行一组命令
- 这是一个基本概念
- [jason@firewall jason]$ A=1;echo $A;{ A=2; };echo $A
- 1
- 2
- [jason@firewall jason]$ A=1;echo $A;( A=2; );echo $A
- 1
- 1
- { A=2; }改变了当前shell变量的值
- ( A=2; )未改变当前shell变量的值
- (cmd1;cmd2;...;cmdN)#在一个子shell里执行一组命令
-
-
-
-
01.$ sort quarter_end.txt > quarter.sorted && lp quarter.sorted
复制代码
使用命令组合的方法,如果s o r t命令执行成功了,先将输出文件拷贝到一个日志区,然后再打印。
01.$ sort quarter_end.txt > quarter.sorted && (cp quarter.sorted /logs/quarter.sorted; lp quarter.sorted)
-
- 3.正则表达式
-
-
-
- 语法:http://bbs.chinaunix.net/thread-149723-1-1.html
-
-
-
- 易错点
-
-
-
-
[abc]: 表示單一字符, 可為 a 或 b 或 c . (與 wildcard 之 [abc] 原理相同)
[^abc]: 表示單一字符, 不為 a 或 b 或 c 即可. (與 wildcard 之 [!abc] 原理相同)
-
[abc]: 表示單一字符, 可為 a 或 b 或 c . (與 wildcard 之 [abc] 原理相同)
-
* 匹配0或多个字符 -
-
4. 易错点总结
-
. . . .X C. . . .:共10个字符,前四个之后为XC
- 列出所有用户都有执行权限的文件或目录
- $ . ' " * [] ^ | () \ + ?ls -l | grep ...x..x..x
输出:
使用 ls -l 列出文件,并匹配目录
ls -l | grep ^d
列出文件a.conf中所有以common结尾的行
方法一:grep common$ a.conf
方法二:cat a.conf | grep common$
匹配所有空行:
^$
匹配只有一个字符的行:
^.$
01使用\屏蔽一个字符的特色含义
一般认为以下字符有特殊含义:
$ . ' " * [] ^ | () \ + ?
例如:
匹配包含^的行 \^
匹配包含 *.pa的行 \*\.pa
02 \{\}匹配出现的次数
pattern\{n\} 匹配模式出现n次。 pattern\{n,\} 匹配模式出现最少n次。 pattern\{n,m} 匹配模式出现n到m次之间,n , m为0 - 2 5 5中任意整数。
例子:
A出现2次,B结尾 A\{2\}B
A至少出现2次,B结尾 A\{2,\}B
A出现2-4次,B结尾 A\{2,4\}B
例子:
从以下抽取代码
1234XC9088 4523XX9001 0011XA9912 9931Xc3445
[0-9]\{4\}XX[0-9]\{4\} 匹配第2行
例子:
以^q开始的行 \^q
匹配单词zpp '"zpp"'
日期格式d d - m m - y y y y [0-9]\{2\}-[0-9]\{2\}-[0-9]\{4\}
匹配IP [ 0 - 9 ] \ { 3 \ } \ . [ 0 - 9 ] \ { 3 \ } \ . [ 0 - 9 ] \ { 3 \ } \ . [ 0 - 9 ] \ { 3 \ }
03 推荐《Linux与Unix shell编程指南》
http://wenku.baidu.com/link?url=R3rMRGvbXXMorWmPEv7uUqifUGMzkgWDpBhySK2SXZYHIvae1KsVXj_48FPF9iUlvBAzTITJROPy6Oy-L6fsNBzzKq9hTmiPvBoey0V8P3a
-
-
- m y f i l e文件中的内容:
- 结果: