shell--输入输出

来源:互联网 发布:梦幻西游数据号怎么弄 编辑:程序博客网 时间:2024/06/07 07:12

1.      read

read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量。

read name

echo "$nameIt is a test" 

2.      echo (自动添加换行符)

-e 开启转义

echo -e"OK! \n"  #显示换行

echo -e"OK! \c"    # -e 开启转义 \c 不换行

显示结果定向至文件

echo"It is a test" > myfile

原样输出字符串,不进行转义或取变量(用单引号)

echo'$name\"'   #结果为$name\"

显示命令执行结果

echo `date`  #结果为Thu Jul 2410:08:46 CST 2014

3.      printf (手动添加\n实现换行)

printf  格式控制字符串  [参数列表]

l  格式控制字符串单引号与双引号效果一样,没有引号也可以输出

l   

printf"%-10s %-8s %-4s\n" 姓名性别 体重kg 

printf"%-10s %-8s %-4.2f\n" 郭靖男 66.1234

printf"%-10s %-8s %-4.2f\n" 杨过男 48.6543

printf"%-10s %-8s %-4.2f\n" 郭芙女 47.9876

 

姓名     性别   体重kg

郭靖     男      66.12

杨过     男      48.65

郭芙     女      47.99

 

l  %s %c %d %f都是格式替代符

l  %-10s 指一个宽度为10个字符(-表示左对齐,没有则表示右对齐),任何字符都会被显示在10个字符宽的字符内,如果不足则自动以空格填充,超过也会将内容全部显示出来。

l  %-4.2f 指格式化为小数,其中.2指保留2位小数。

printf转义序列

\a

警告字符,通常为ASCIIBEL字符

\b

后退

\c

抑制(不显示)输出结果中任何结尾的换行字符(只在%b格式指示符控制下的参数字符串中有效),而且,任何留在参数里的字符、任何接下来的参数以及任何留在格式字符串中的字符,都被忽略

\f

换页(formfeed

\n

换行

\r

回车(Carriage return

\t

水平制表符

\v

垂直制表符

\\

一个字面上的反斜杠字符

\ddd

表示13位数八进制值的字符。仅在格式字符串中有效

\0ddd

表示13位的八进制值字符

4.      test 用于检查某个条件是否成立

字符串、字符和文件运算符与逻辑运算符类似。

if test $[num1] -eq $[num2]

then

echo '两个数相等!'

else

echo '两个数不相等!'

fi

【输入输出重定向】

command > file

将输出重定向到 file

command < file

将输入重定向到 file

command >> file

将输出以追加的方式重定向到 file

n > file

将文件描述符为 n的文件重定向到 file

n >> file

将文件描述符为 n的文件以追加的方式重定向到 file

n >& m

将输出文件 m n 合并。

n <& m

将输入文件 m n 合并。

<< tag

将开始标记 tag和结束标记 tag 之间的内容作为输入。

文件描述符 0 通常是标准输入(STDIN),1是标准输出(STDOUT),2是标准错误输出(STDERR)。

Here Document 是 Shell 中的一种特殊的重定向方式,用来将输入重定向到一个交互式 Shell 脚本或程序。

command << delimiter

    document

delimiter

结尾的delimiter一定要顶格写,前面不能有任何字符,后面也不能有任何字符,包括空格和 tab缩进。

/dev/null文件

如果希望执行某个命令,但又不希望在屏幕上显示输出结果,那么可以将输出重定向到 /dev/null:

$ command > /dev/null

如果屏蔽stdout和stderr,可以写成

$ command > /dev/null 2>&1


1 0
原创粉丝点击