linux shell编程指南第五章------shell输入与输出

本文详细介绍了Linux系统下echo命令的基本用法及高级应用,包括如何使用转义字符、禁止自动换行、输出到文件等技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用e c h o命令可以显示文本行或变量,或者把字符串输入到文件。它的一般形式为:
echo string
e c h o命令有很多功能,其中最常用的是下面几个:
\c 不换行。
\f 进纸。
\t 跳格。

\n 换行。


,你可以让终端铃响一声,显
示出$ H O M E目录,并且可以让系统执行t t y命令(注意,该命令用键盘左上角的符号,法语中
的抑音符引起来,不是单引号, )。

[root@localhost etc]# echo "\007 your home directory is $HOME,you are connected on `tty`"
\007 your home directory is /root,you are connected on /dev/pts/1

如果是LINUX系统,那么......
必须使用- n选项来禁止echo命令输出后换行:

[root@localhost etc]# echo -n "what is your name:"
what is your name:[root@localhost etc]# 

必须使用-e选项才能使转义符生效:

[root@localhost etc]# echo "\n\n\n"
\n\n\n
[root@localhost etc]# echo -e  "\n\n\n"
[root@localhost etc]# 

[root@localhost etc]# echo "nihao\t\thuangchengdu"
nihao\t\thuangchengdu
[root@localhost etc]# echo -e "nihao\t\thuangchengdu"
nihao           huangchengdu


如果想把一个字符串输出到文件中,使用重定向符号>。在下面的例子中一个字符串被重
定向到一个名为m y f i l e的文件中:
$ echo "The log files have all been done"> myfile
或者可以追加到一个文件的末尾,这意味着不覆盖原有的内容:
$ echo "$LOGNAME carried them out at `date`">>myfile

myfile.txt的内容如下:

the log files have all been done
hello 2013年 11月 20日 星期三 22:22:56 CST


特殊字符前面加\来转换。

[root@localhost huangcd]# echo "\"/dev/rmt0"
"/dev/rmt0
[root@localhost huangcd]# echo "\"/dev/rmt0"\"
"/dev/rmt0"


可以使用r e a d语句从键盘或文件的某一行文本中读入信息,并将其赋给一个变量。如果只

指定了一个变量,那么r e a d将会把所有的输入赋给该变量,直至遇到第一个文件结束符或回车。

在下面的例子中,只指定了一个变量,它将被赋予直至回车之前的所有内容:

[root@localhost huangcd]# read name
nihao huangchengdu
[root@localhost huangcd]# echo $name
nihao huangchengdu

[root@localhost huangcd]# read name surname
huangchengdu huangchengdu1
[root@localhost huangcd]# echo $name
huangchengdu
[root@localhost huangcd]# echo $surname
huangchengdu1


创建一个脚本文件,内容如下:

#!/bin/bash

echo -e "first name:"
read name
echo -e "middle name:"
read middle
echo -e "last name:"
read surname


运行结果如下:

[root@localhost huangcd]# ./var_text.py 
first name:
du   
middle name:
cheng 
last name:
huang












评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值