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. 玩转X-CTR100 l STM32F4 l HC-SR04超声波测距

    我造轮子,你造车,创客一起造起来!更多塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 超声波测距模块HC-SR04可以测量2cm~40 ...

  2. [翻译]HTTP: Let’s GET It On!

    原文地址:HTTP: Let’s GET It On! 简介 几周之前,我们了解到HTTP是一个应用级的协议.现在是时候探索我们应该如何在客户端和服务端的通信之间使用这个协议了. 从网络上获取资源 记 ...

  3. Python学习(003)-列表[]

    列表[] a=['张帅','李四','王五','陈六','黄旗'] print(a[2])    王五 print(a[1:3])   ['李四','王五']  左包含,右不包含 print(a[1: ...

  4. Boosting 简单介绍

    前面介绍了Adaboost,知道了Adaboost是损失函数为指数函数的Boosting算法.那么Boosting还包括了以下几个: 损失函数名称 损失函数 算法 平方差(Squared error) ...

  5. OO面向对象多线程编程作业总结

    第五次作业:多线程电梯调度 设计策略 ​ 在本次电梯作业当中,我构造了一个电梯请求队列线程,一个调度器线程,三个电梯线程,一个文件输出线程,还有主线程. ​ 调度器扫描用户的请求队列,将每个队列分配给 ...

  6. 2.1 Linux中wait、system 分析

    wait与waitpid: 当子进程退出的时候,内核会向父进程发送SIGCHID信号,子进程的退出是一个异步事件(子进程可以在父进程运行的任何时刻终止). 子进程退出时,内核将子进程置为僵尸状态,这个 ...

  7. QT4 交叉编译

    配置 ./configure \-prefix /usr \-no-rpath \-embedded arm \-xplatform /qws/linux-arm-gnueabi-g++ \-dept ...

  8. 【linux基础】core dump debug

    1.check core dump; ulimit -c or ulimit -a nvidia@tegra-ubuntu:~$ ulimit -a core data seg size (kbyte ...

  9. HPU 1471:又是斐波那契数列??(大数取模)

    1471: 又是斐波那契数列?? 时间限制: 1 Sec 内存限制: 128 MB 提交: 278 解决: 27 统计 题目描述 大家都知道斐波那契数列吧?斐波那契数列的定义是这样的: f0 = 0; ...

  10. stenciljs 学习十一 pwa 支持

    stenciljs 对于pwa 的支持是自动注入的,我们只需要简单的配置,stenciljs使用workbox 配置 默认配置 { skipWaiting: true, clientsClaim: t ...