Shell命令读取数据与输出数据

shell脚本读取数据的几种方式:
1.键盘输入,默认
2.从文件中读取
3.通过管道命令传递

echo的功能:
\c	:不换行
\f	:进纸
\t	:跳格
\n	:换行
\表示转义,例如:"\"/dev/rmt0"\"翻译为,"/dev/rmt0"

read:从键盘或文件的某一行文本中读取信息,并将其赋给一个变量。
[开发]/>read name
hello i am a regular user
[开发]/>echo $name
hello i am a regular user
[开发]/>

cat:作用,1.显示文件内容,2.创建文件,3.显示控制字符。
1.显示文件内容
	cat filename | more
	cat filename | pg
2.创建文件
	cat > filename
3.显示控制字符
	cat -v filename

管道:可以通过管道,将一个命令的输出传递给另一个命令做为输入。
形式:命令1 | 命令2
例如:
[开发]/usr/xxxx/ytcclb>who | awk '{print $1"\t"$2}'
xxxx    ttyp0
xxxx    ttyp1
xxxx    ttyp2
...
xxxx    ttyp55
[开发]/usr/xxxx/ytcclb>df -k | awk '{print $1}' |  grep -v "Filesystem"
/dev/root
/dev/boot
[开发]/usr/xxxx/ytcclb>df -k | awk '{print $1}'| grep -v "Filesystem"|sed s'/\/dev\///g'   
root
boot
[开发]/usr/xxxx/ytcclb>

tee命令
作用:把输出的一个副本输送到标准输出,另一个副本拷贝到相应的文件中。
tee -a file
-a:追加到文件末尾。
[开发]/usr/xxxx/ytcclb>who | tee who.out
将who命令查找到的数据保存到who.out文件中。

文件重定向:
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 		把command命令以filename文件作为标准输入
command << delimiter 		把从标准输入中读入,直至遇到delimiter分界符
command <&m 			把文件描述符m作为标准输入
command >&m 			把标准输出重定向到文件描述符m中
command <&- 			把关闭标准输入

重定向标准输出
1.将很多命令的输出追加到一个文件中
	ls -l | grep ^d >>files.out
	ls account* >> files.out

[开发]/usr/xxxx/ytcclb>ls -l null.txt
-rw-r--r--   1 xxxx     group          3 Nov 15 16:07 null.txt
[开发]/usr/xxxx/ytcclb>chmod u +x null.txt
chmod: WARNING: cannot access +x: No such file or directory (error 2)
u与+x之间有空格!
[开发]/usr/xxxx/ytcclb>chmod u+x null.txt
[开发]/usr/xxxx/ytcclb>ls -l null.txt
-rwxr--r--   1 xxxx     group          3 Nov 15 16:07 null.txt

你可能感兴趣的:(Unix,Shell,编程)