shell 7echo命令
1. echo
echo用于字符串的输出
1.1. 显示普通字符串
#!/bin/sh
echo "Hello world" #Hello world
echo Hello world #Hello world
1.2. 显示转译字符
#!/bin/sh
echo "\"Hello world\"" #"Hello world"
echo "Hello\tworld" #Hello world
echo "Hello\nworld" #Hello<br>world
1.3. 使用双引号显示变量,使用单引号原样输出
#!/bin/sh
name="cup"
echo "this is ${cup}" #this is
echo 'this is ${cup}' #this is ${cup}
1.4. 显示结果定向至文件
#!/bin/sh
echo start #start
echo "OK! \c" > a.txt
echo "It is a test" >> a.txt
echo cat a.txt #cat a.txt
cat a.txt #OK! It is a test
echo rm file #rm file
rm -rf a.txt
1.5. 显示命令执行结果
#!/bin/sh
echo `date` #2018年 9月 2日 星期日 23时54分45秒 CST
1.6. Mac中-e参数只在命令行可用,脚本中会当作普通字符串处理
| \a | 发出警告声 |
| \b | 删除前一个字符 |
| \c | 最后不加上换行符号 |
| \f \v 与\f相同 |
换行但光标仍旧停留在原来的位置 |
| \n | 换行且光标移至行首 |
| \r | 光标移至行首,但不换行 |
| \t | 插入tab |
| \ | 插入\字符 |
| \nnn | 插入nnn(八进制)所代表的ASCII字符 |

2.printf
printf使用引用文本或空格分隔的参数,外面可以在printf中使用格式化字符串,还可以指定字符串的宽度、左右对其方式等。printf不会像echo自动添加换行符,因此需要手动添加换行符\n
语法:
printf format-string [arguments...]
# format-string:为格式控制字符串
# arguments:参数列表
常用字符:
- %s 字符串
- %d,%i 十进制整数
- %c ASCII字符。显示相对应参数的第一个字符
- %e,%E,%f 浮点格式
- %g %E或%f转换,看哪一个较短,则删除结尾的0
- %G %E或%f转换,看哪一个较短,则删除结尾的0
- \b 后退 \f 换页 \n 换行 \r 回车 \t 水平制表符 - 左对齐
更多参考http://man.linuxde.net/printf,http://www.runoob.com/linux/linux-shell-printf.html
#!/bin/sh
#打印普通字符串
printf "hello\t"
printf "world\n"
#打印格式化字符串
printf "%-10s %-8s %-10s %-4s\n" 姓名 性别 绰号 排名
printf "%-10s %-8s %-10s %-4d\n" 宋江 男 及时雨 1
printf "%-10s %-8s %-10s %-4d\n" 吴用 男 智多星 3
printf "%-11s %-8s %-10s %-4d\n" 卢俊义 男 玉麒麟 2

%-10s 宽度为10的字符串(-表示左对齐,没有则表示右对齐),任何字符都会被显示在10个字符款的字符内,如果不足则自动以空格填充,超过也会将内容全部显示出来。
#!/bin/sh
printf "%-10s %-5s\n" "hello" "apache tomcat"
printf "%10s %5s\n" "world" "apache tomcat"

#!/bin/sh
#双引号
printf "%d %s\n" 1 "abc"
#单引号和双引号一样
printf '%d %s\n' 1 "abc"
#没有引号也可以输出
printf %s abcefg
echo "****"
#格式只指定了一个参数,但多出的参数仍然可以按照该格式输出
printf %s abc def
echo "****"
printf "%s \n" abc def
printf "%s %s %s \n" a b c d e f g h i j
#如果没有参数,s用null代替,d用0代替
printf "%s and %d \n"

3.read
read命令用于从键盘或文件中读入信息,可同时给多个变量赋值。如果输入的值的个数多余变量个数,多余的值会赋值给最后一个变量
read [-option] 变量列表
常用参数:
- -p 字符串:用于在请求输入之前给出提示信息
#!/bin/bash
read name
echo "name:${name}"
read -p "please input your name:" yourname
echo "yourname:${yourname}"
read -p "please input classmates:" test1 test2 test3
echo "test1:${test1} test2:${test2} test3:${test3}"

4.tee
表示将输出的内容同时输出到到指定的文件内,如果想看到输出的同时,把输出也同时考入一个文件,适用tee。经常和管道符号|一起使用
tee [-option] 文件名
常用参数:
- -a:将输出的内容追加到指定的文件内容末尾(不覆盖文件原有内容)
ps -ef|tee proc.info
shell 7echo命令的更多相关文章
- linux 基础 shell脚本命令
#########shell脚本命令#### 1.diff diff file file1 ####比较两个文件的不同 -c ####显示周围的行 -u ####按照一格式统一输出生成补丁 -r ## ...
- paip.执行shell cmd 命令uapi java php python总结
paip.执行shell cmd 命令uapi java php python总结 作者Attilax 艾龙, EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:h ...
- (转)Hbase shell 常用命令(1)
Hbase shell 常用命令(1) link:http://blog.csdn.net/scutshuxue/article/details/6988348 下面我们看看HBase Shell的一 ...
- Shell printf 命令
Shell printf 命令 printf 命令模仿 C 程序库(library)里的 printf() 程序. 标准所定义,因此使用printf的脚本比使用echo移植性好. printf 使用引 ...
- Shell echo命令
Shell echo命令 echo "It is a test" 这里的双引号完全可以省略 .显示变量 read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shel ...
- 进入BIOS SHELL DUMP 命令
LINUX系统 进入SHELL 输入命令 fs1: or fs0: 就进入了U盘目录 然后输入 ACPIRW.efi -d -s dsdt.bat 就会产生结果到U盘 ——————————————— ...
- Linux Shell : Test命令参数解析
格式: test conditions test -n string : string 不为空 test -z string : string 为空 test int1 -eq int2 : int ...
- shell解析命令行的过程以及eval命令
本文说明的是一条linux命令在执行时大致要经过哪些过程?以及这些过程的大致顺序. 1.1 shell解析命令行 shell读取和执行命令时的大致操作过程如下图: 以执行以下命令为例: echo -e ...
- Shell和命令基础
什么是Shell Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口(命令解析器),Shell接收用户输入的命令并把它送入到内核去执行,结构如下图 Shell的功能 Shell最重要的 ...
随机推荐
- (C/C++学习笔记) 十四. 动态分配
十四. 动态分配 ● C语言实现动态数组 C语言实现动态数组,克服静态数组大小固定的缺陷 C语言中,数组长度必须在创建数组时指定,并且只能是一个常数,不能是变量.一旦定义了一个数组,系统将为它分配一个 ...
- MyEclipse移动开发教程:设置所需配置的iOS应用(三)
MyEclipse个人授权 折扣低至冰点!立即开抢>> [MyEclipse最新版下载] 三.创建配置文件 Provisioning profiles授权文件应用程序在iOS设备上安装并运 ...
- DevExpress DateEdit 5 常见问题解决方法
1. 如何设置选择的日期大于当天? dateEdit1.Properties.MinValue = DateTime.Now.AddDays(1) 2. 如何做到只显示年.月? var formatS ...
- JavaScript权威指南——词法结构(4)
标识符和保留字 1.标识符 标识符就是一个名字.在JavaScript中,标识符用来给变量.属性.函数和参数进行命名,或者用做某些循环语句中的跳转位置的标记. //变量 var identifier ...
- Java快速排序和归并排序详解
快速排序 概述 快速排序算法借鉴的是二叉树前序遍历的思想,最终对数组进行排序. 优点: 对于数据量比较大的数组排序,由于采用的具有二叉树二分的思想,故排序速度比较快 局限 只适用于顺序存储结构的数据排 ...
- PLsql登录数据库提示密码即将过期-
小哥询问,PL*SQL用户登录后弹出警告:咋整? ORA-28002:the password will expire within 7 days密码在7天内将到期 do you wish to ch ...
- ubuntu12.04 alternate win7 双系统安装
ubuntu alternate的安装比desktop复杂一点,因为alternate的安装过程有个步骤是检测cd-rom,如果你是刻盘安装,自然没问题,但是,现在的安装一般是将系统刻到U盘里,或者在 ...
- URAL - 1397:Points Game (博弈,贪心)
Two students are playing the following game. There are 2· n points on the plane, given with their co ...
- IO练习--按字节截取字符串
* 在Java中字符串“abcd”和字符串“ab你好”都是4个字符, * 但是字节数不同,因为GBK中一个汉字占两个字节 * 定义一个方法用来按字节数截取字符串. * 如:对于“ab你好”,取3个字节 ...
- zookeeper 官方文档——综述
Zookeeper: 一个分布式应用的分布式协调服务 zookeeper 是一个分布式的,开源的协调服务框架,服务于分布式应用程序. 它暴露了一系列基础操作服务,因此,分布式应用能够基于这 ...