1、输出命令
echo
#!/bin/bash #echo命令可以显示文本行或变量,或者把字符串输入到文件 #-e 解析转义 #\c 不换行 #\t 跳格 #\n 换行 echo -e "enter your name:\c" read name echo "$name" echo -n "welcome boobooke" echo -e "welcome b\toobooke" echo -e "welcome boobooke\n"
read
#!/bin/bash echo -e "your first name:\c" read first echo -e "your middle name:\c" read middle echo -e "your last name:\c" read last
cat
cat file | more
cat file1 fiel2 > file
| 命令1 | 命令2
ls | grep ini
管道:是一个命令的标准输出与另一个命令的标准输入之间的连接,不经过任何中间文件
管道线:是由管道操作符分割的一个命令序列,最简单的管道线是一个简单命令
管道操作符:用符号"|"表示
[arcerzhang@DG3 shell]$ name="hi arcerzhang i love you" [arcerzhang@DG3 shell]$ echo $name hi arcerzhang i love you [arcerzhang@DG3 shell]$ echo $name | awk '{print $1 "\t" $2}' hi arcerzhang [arcerzhang@DG3 shell]$ echo $name | awk '{print $1 "\t" $2 "\t" $3}' hi arcerzhang i [arcerzhang@DG3 shell]$ echo $name | awk '{print $1 "\t" $2 "\t" $3 "\t" $4 "\t" $5}' hi arcerzhang i love you [arcerzhang@DG3 shell]$
#!/bin/bash ip_info_a=`ifconfig | grep "inet addr:" | grep -v "127.0.0.1" | grep -v "192.168.122.1" | awk '{print $2}' | awk -F ':' '{print $2}'`; echo "pattern a:当前计算机的IP地址是:$ip_info_a" #使用$()代替`` ip_info_b=$(ifconfig | grep "inet addr:" | grep -v "127.0.0.1" | grep -v "192.168.122.1" | awk '{print $2}' | awk -F ':' '{print $2}'); echo "pattern b:当前计算机的IP地址是:$ip_info_b" ~
查询指定的文件是否存在,给出相应信息
标准I/O
重定向
1、标准输入、输出和错误
标准输入
标准输入是文件描述符0.它是命令的输入,缺省是键盘
标准输出
标准输出是文件描述符1.它是命令的输出,缺省是屏幕,也可以是文件.
标准错误
标准错误时文件描述符2
2、文件重定向
[arcerzhang@DG3 shell]$ ls * arcerzhang.log b.txt c.txt hello.sh operator.sh read.sh while.sh who.txt a.txt case.sh echo.sh in_out.sh param.sh test.sh who.out boobooke.info cmd.sh file.out ipinfo.sh random.sh while1.sh who.t [arcerzhang@DG3 shell]$ ls -a* ls:无效选项 -- * 请尝试执行"ls --help"来获取更多信息。 [arcerzhang@DG3 shell]$ ls a* arcerzhang.log a.txt [arcerzhang@DG3 shell]$ ls z* ls: 无法访问z*: 没有那个文件或目录 [arcerzhang@DG3 shell]$ ls z* 2> erro.log [arcerzhang@DG3 shell]$ cat erro.log ls: 无法访问z*: 没有那个文件或目录 [arcerzhang@DG3 shell]$
cmd >filename 把标准输出重定向到一个新文件中
cmd >>filename 把标准输出重定向到一个文件中(追加)
cmd 1> filename 把标准输出重定向到一个文件中
cmd >filename 2>&1 把标准输出和标准错误输出一起重定向到一个文件中
cmd 2>filename 把标准错误重定向到一个文件中
cmd 2>>filename 2>&1 把标准错输出,标准错误输出都重定向到一个文件中(追加)
cmd < filename 把cmd命令以filename文件作为标准输入
cmd < ABC 从标准输入中读入,直至遇到ABC分界符
cmd <&m 把文件描述符m作为标准输入
cmd >&m 把标准输出重定向到文件描述符m中
cmd <&- 关闭标准输入