shell输入与输出echo、read、cat、管道、tee
echo:
显示文本行或变量、或者把字符串输入到文件中去
echo常见功能
\c 不换行
\f 进纸
\t 跳格
\n 换行
注意:
Linux系统,那么······
使用-n选项禁止echo命令输出后换行
# echo -n "My name is xiaolu:"
使用-e选项才能使转义符生效:
echo -e "your home directory is $HOME, you are connected on `tty`"
如果希望echo命令输出后附加换行、可以使用\n参数
如下:
# vi xiaolu.sh
#!/bin/bash
echo -e "Is just a test files\n\n\n\n"
echo -e "OK!"
显示结果如下:
# ./xiaolu.sh
Is just a test files
OK!
如果想把一个字符串输入到一个文件里面,可以使用重定向:
echo "Your birth is a mistake" > xiaolu.log 将echo显示的字符串重定向到xiaolu.log的文件中
echo "Your birth is a mistake" > >xiaolu.log >>表示将显示的内容追加到文件中去,不覆盖其中的文件内容
如何再字符串中显示引号:
双引号是个特殊的字符,这里我们需要使用反斜杠来忽略它的特殊含义,例如:
# echo "\""xiaolu""\"
显示如下:
"xiaolu"
read:
从键盘或着文件的某一行文本中读入信息,并将其赋给一个变量.如果只指定了一个变量,那么read将会把所有的输入赋给该变量,直至遇到第一个文件结束符或回车.
例如:
# read name surname
xiao lu 键盘输入上的.
# echo $name $surname
cat:
显示文件内容,创建文件,用它来显示控制字符
cat命令最有用的选项
-v显示控制字符
如果希望创建一个新文件,并向文件里面写内容,则可以使用cat输入,按ctrl D结束
cat > QQ
test
test
test
{CTRL D 结束}
这样就完成了一次输入
管道:
可以通过管道把一个命令的输出传递给另一个命令作为输入.管道用丨表示.
使用格式:
命令1 丨 命令2
sed、awk和grep就非常适合使用管道符,特别是再简单的一行命令中:例如:
# who | awk ''{print $1"\t"$2}''
显示如下:
root pts/0
root pts/1
例:
列出系统中的所有文件系统,去掉题头的文件系统
# df -k | awk ''{print $1}'' | grep -v 文件系统
显示如下:
/dev/hda2
/dev/hda1
tmpfs
其中只显示分区名,不显示/dev/
# df -k | awk ''{print $1}'' | grep -v 文件系统 | sed s''/\/dev\///g''
显示如下:
hda2
hda1
tmpfs
tee:
把输出的一个副本输送到标准输出,另一个副本拷贝到相应的文件中.如果希望看到输出结果的同时,也将其存入到一些文件,那么这个命令再适合不过了.
它的一般形式为:
tee -a 文件名
-a代表追加到文件尾.
例如:
who | tee with.out
本文出自 “折翅飞翔的小鸟” 博客,请务必保留此出处http://haolulu.blog.51cto.com/3164472/708091
|