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命令的更多相关文章

  1. linux 基础 shell脚本命令

    #########shell脚本命令#### 1.diff diff file file1 ####比较两个文件的不同 -c ####显示周围的行 -u ####按照一格式统一输出生成补丁 -r ## ...

  2. paip.执行shell cmd 命令uapi java php python总结

    paip.执行shell cmd 命令uapi java php python总结 作者Attilax  艾龙,  EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:h ...

  3. (转)Hbase shell 常用命令(1)

    Hbase shell 常用命令(1) link:http://blog.csdn.net/scutshuxue/article/details/6988348 下面我们看看HBase Shell的一 ...

  4. Shell printf 命令

    Shell printf 命令 printf 命令模仿 C 程序库(library)里的 printf() 程序. 标准所定义,因此使用printf的脚本比使用echo移植性好. printf 使用引 ...

  5. Shell echo命令

    Shell echo命令 echo "It is a test" 这里的双引号完全可以省略 .显示变量 read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shel ...

  6. 进入BIOS SHELL DUMP 命令

    LINUX系统 进入SHELL 输入命令 fs1: or fs0: 就进入了U盘目录 然后输入 ACPIRW.efi  -d -s dsdt.bat 就会产生结果到U盘 ——————————————— ...

  7. Linux Shell : Test命令参数解析

    格式: test conditions test -n string : string 不为空 test -z string : string 为空 test int1 -eq int2  : int ...

  8. shell解析命令行的过程以及eval命令

    本文说明的是一条linux命令在执行时大致要经过哪些过程?以及这些过程的大致顺序. 1.1 shell解析命令行 shell读取和执行命令时的大致操作过程如下图: 以执行以下命令为例: echo -e ...

  9. Shell和命令基础

    什么是Shell Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口(命令解析器),Shell接收用户输入的命令并把它送入到内核去执行,结构如下图 Shell的功能 Shell最重要的 ...

随机推荐

  1. linux export环境变量

    Linux export命令参数(转载)   功能说明:设置或显示环境变量. 语 法:export [-fnp][变量名称]=[变量设置值] 补充说明:在shell中执行程序时,shell会提供一组环 ...

  2. c#版本与vs的对应关系

    版本 .NET Framework版本 Visual Studio版本 发布日期 特性 C# 1.0 .NET Framework 1.0 Visual Studio .NET 2002 2002.1 ...

  3. DevExpress v18.1新版亮点——WinForms篇(一)

    用户界面套包DevExpress v18.1日前正式发布,本站将以连载的形式为大家介绍各版本新增内容.本文将介绍了DevExpress WinForms v18.1 的新功能,快来下载试用新版本! C ...

  4. 使用ALVideoPlayerSurface制作视频播放器

    头两天介绍了开源控件包alcinoe,现在利用其中的ALVideoPlayerSurface视频播放控件,实作一个视频播放器. 首先,建一个fmx项目,然后从组件面版,拖放一个TAlVideoPlay ...

  5. Android 自定义圆形旋转进度条,仿微博头像加载效果

    微博 App 的用户头像有一个圆形旋转进度条的加载效果,看上去效果非常不错,如图所示: 据说 Instagram 也采用了这种效果.最近抽空研究了一下,最后实现的效果是这样: 基本上能模拟出个大概,代 ...

  6. PAT 数列求和-加强版   (20分)(简单模拟)

    给定某数字A(1≤A≤9)以及非负整数N(0≤N≤100000),求数列之和S=A+AA+AAA+⋯+AA⋯A(N个A).例如A=1, N=3时,S=1+11+111=123 输入格式: 输入数字A与 ...

  7. Unity3D 发布APK安卓环境配置步骤、安装、教程(含Java/Android)(超全流程)

    Unity3D安卓环境配置运行 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享. ...

  8. BZOJ4767: 两双手【组合数学+容斥原理】

    Description 老W是个棋艺高超的棋手,他最喜欢的棋子是马,更具体地,他更加喜欢马所行走的方式.老W下棋时觉得无聊,便决定加强马所行走的方式,更具体地,他有两双手,其中一双手能让马从(u,v) ...

  9. 关于FormData及其用法

    XMLHttpRequest Level 2添加了一个新的接口FormData.利用FormData对象,我们可以通过JavaScript用一些键值对来模拟一系列表单控件,我们还可以使用XMLHttp ...

  10. MySQL主从复制报错及解决方法

    mysql> show slave status \G *************************** 1. row *************************** Slave_ ...