输入和输出(echo,read,cat,管道,tee,重定向等)_VMware, Unix及操作系统讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  VMware, Unix及操作系统讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 4022 | 回复: 0   主题: 输入和输出(echo,read,cat,管道,tee,重定向等)        下一篇 
谁是天蝎
注册用户
等级:大元帅
经验:90210
发帖:106
精华:0
注册:2011-7-21
状态:离线
发送短消息息给谁是天蝎 加好友    发送短消息息给谁是天蝎 发消息
发表于: IP:您无权察看 2011-8-2 9:52:11 | [全部帖] [楼主帖] 楼主

在看这个之前,像俺这样没有基础的,得先看完网中人的《shell十三问》的前三章,在置顶处,所以前面echo的含义,参数,及基础用法等就不说了。
我下面的所有环境都在在REDHAT LINUX9下试验的
在LINUX中,要使转义符生效,需加参数-e

从echo的变量开始说起
如:e c h o命令输出转义符以及变量。

# echo -e "\007your home is $HOME , you are connected on `tty`"
your home is /root , you are connected on /dev/pts/1
# echo -e "\ayour home is $HOME , you are connected on `tty`"
your home is /root , you are connected on /dev/pts/1
#


在e c h o命令输出之后附加换行,可以使用\ n选项:

$ cat echod
#!/bin/sh
echo -e "this echo's 3 new lines\n\n\n"
echo "OK"


编辑一个新echod,如上内容,然后运行输出如下:

$ ./echod
this echo's 3 new lines
OK
$


在e c h o语句中使用跳格符,记住别忘了加反斜杠\:

$ echo -e "here is a tab\there are two tabs\t\tok"
here is a tab   here are two tabs               ok
$


把一个字符串输出到文件中,使用重定向符号>。
在下面的例子中一个字符串被重定向到一个名为m y f i l e的文件中:

$ echo "The log files have all been done"> myfile


或者可以追加到一个文件的末尾,这意味着不覆盖原有的内容:

$ echo "$LOGNAME carried them out at `date`">>myfile


现在让我们看一下m y f i l e文件中的内容:

The log files have all been done


sam carried them out at 六 11月 13 12:54:32 CST 2004

引号是一个特殊字符,所以必须要使用反斜杠\来使s h e l l忽略它的特殊含义。
假设你希望使用e c h o命令输出这样的字符串:“/ d e v / r m t 0”,那么我们只要在引号前面加上反斜杠\即可:

$ echo "\"/dev/rmt0"\"
"/dev/rmt0"
$
[sam@chenwy sam]$ read name
sam
[sam@chenwy sam]$ echo $name
sam
[sam@chenwy sam]$ read name surname
sam ch
[sam@chenwy sam]$ echo $name surname
sam surname
[sam@chenwy sam]$ read name surname
sam ch yiir
[sam@chenwy sam]$ echo $name
sam
[sam@chenwy sam]$ echo $surname
ch yiir
[sam@chenwy sam]$ cat var_test
#!/bin/sh
#var_test
echo -e "First Name :\c"
read name
echo -e "Middle Name :\c"
read middle
echo -e "Last name :\c"
read surname


var_test文件内容如上

[sam@chenwy sam]$ ./var_test
First Name :wing
Middle Name :er
Last Name:chenwy




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论