| shell输入与输出 条件测试 shell 阅读笔记-基本命令
1.shell输入与输出 echo -n 不要输出NEWLINE -e 使控制字符起作用,及ENABLE INTERPRATE THE BACKSLAH
read 从命令行读入数据 cat 输出到屏幕(或者标准输出1) 管道 上一个的输出作为输入 tee 输出的同时在屏幕上显示结果
重定向标准输出,重定向标准输入,重定向标准错误
command > filename 把把标准输出重定向到一个新文件中 command >> filename 把把标准输出重定向到一个文件中(追加) command 1 > fielname 把把标准输出重定向到一个文件中 command > filename 2>&1 把把标准输出和标准错误一起重定向到一个文件中 command 2 > filename 把把标准错误重定向到一个文件中 command 2 >> filename 把把标准输出重定向到一个文件中(追加) command >> filename 2>&1 把把标准输出和标准错误一起重定向到一个文件中(追加) command < filename >filename2 把command命令以filename文件作为标准输入,以filename2文件作为标准输出 command < filename 把c o m m a n d命令以f i l e n a m e文件作为标准输入 command << delimiter 把从标准输入中读入,直至遇到d e l i m i t e r分界符 command <&m 把把文件描述符m作为标准输入 command >&m 把把标准输出重定向到文件描述符m中 command <&- 把关闭标准输入 command >/dev/null 2>&1 不显示任何内容 2.命令执行顺序 || && ||前面一个为真则退出,否则执行后面一个,返回0(TRUE) &&前面一个为真,则执行后面一个,否则退出。且返回1(FALSE) 用()和{ }将命令结合在一起
3.条件测试 test condition 或者 [condition] 测试文件状态 *权限问题 -x exist && excute -r exist && read -w exist &&write *存在问题 -e exist -s exitst &&size>0 not empty *设备问题 -f regular file -b block device -c char device -d directory -L 符号连接 -a 逻辑与,操作符两边均为真,结果为真(0),否则为假(1)。 -o 逻辑或,操作符两边一边为真,结果为真,否则为假。 ! 逻辑否,条件为假,结果为真
字符串测试 = 两个字符串相等。 != 两个字符串不等。 -z 空串 zero -n 非空串nonzero
测试数值 [ "number " numeric_operator "number" ] numeric_operator 可为: -eq 数值相等。 -ne 数值不相等。 -gt 第一个数大于第二个数。 -lt 第一个数小于第二个数。 -le 第一个数小于等于第二个数。 -ge 第一个数大于等于第二个数 4.数值计算 expr命令一般用于整数值,但也可用于字符串。一般格式为: expr argument operator argument expr 也是一个手工命令行计数器。 使用乘号时,必须用反斜线屏蔽其特定含义。因为shell可能会误解显示星号的意义。 增量计数 expr 在循环中用于增量计算。首先,循环初始化为0,然后循环值加1,反引号的用法意 即替代命令。最基本的一种是从expr命令接受输出并将之放入循环变量。 5.特定变量参数 既然已经知道了如何访问和使用shell脚本中的参数,多知道一点相关信息也是很有用的, 有必要知道脚本运行时的一些相关控制信息,这就是特定变量的由来。共有7个特定变量, 特定shell变量 $# 传递到脚本的参数个数 $* 以一个单字符串显示所有向脚本传递的参数。与位置变量不同,此选项参数可超过9个 $$ 脚本运行的当前进程I D号 $! 后台运行的最后一个进程的进程I D号 $@ 与$#相同,但是使用时加引号,并在引号中返回每个参数 $- 显示s h e l l使用的当前选项,与s e t命令功能相同 $? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误
|