终端打印
终端是交互式工具,用户可以通过它与shell环境进行交互.在终端中打印文本是绝大多数的shell脚本和工具日常需要执行的基本任务.
echo
echo终端输出有三种方式:
echo hello world!
echo “hello world!”
echo ‘hello world!’
区别:
1.因为shell脚本是以;来分隔两条语句,所以 echo + 文本
这种打印方式无法输出带有;的语句.
2.要打印特殊字符,例如!的时候,如果使用 echo + “文本”,则需要用\转义特殊字符;
3.打印打印特殊字符,使用echo + '文本’方式,不需要用\来转义.
printf
printf终端输出的用法类似于C语言的printf函数,例如:
printf “hello world!”
可以使用printf来格式化字符串,例如:
#!/usr/bash
printf "%-5s %-10s %-4s\n" No Name Mark
printf "%-5s %-10s %-4.2s\n" 1 Tom 70.23
printf "%-5s %-10s %-4.2s\n" 2 chris 100.5655
运行脚本,效果如下:
说明:
%s,%c.%d都是格式替换符,用法类似与C语言.
%-5s指明了一个格式为左对齐且宽度为5的字符串替换(-表示左对齐).如果不用-指定对齐方式,字符串就是右对齐形式.
在echo中转义换行符
echo -e “包含转义序列的字符串”
例如 echo -e “1\t2\t3”,输出为: 1 2 3(如果不加-e选项,则输出为1\t2\t3)
环境变量
变量是任何一种编程语言都必不可少的组成部分,用于存放各类数据.脚本语言通常不需要在使用变量之前声明其类型,直接赋值即可.有一些特殊的变量会被shell环境和操作系统环境用来存储一些特别的值,这类变量就可以被称为环境变量.
变量赋值:
var=value(也可以var='value’或者var=“value”)
使用变量:
在变量的前面加上$就可以使用了,例如 echo $var或者 echo ${var}
变量例子1
环境变量
用export命令来设置环境变量,当在终端输入export var = 123,以后,在当前终端会一直默认变量var的值为123(但是关闭该终端以后,就无法使用var的值了)可以直接使用var的值:
如果想让某个变量对所有的终端有效,可以将变量的值写入~/.bashrc文件中,例如,
编辑~/.bashrc文件,在文件的末尾加上下面的语句:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/ros/kinetic/lib/x86_64-linux-gnu
那么我们在终端中输入echo $LD_LIBRARY_PATH,则会显示刚才设置的值.
一些使用技巧
1.获取字符串长度
length=${#var}
2.识别当前使用的shell
echo $SHELL
3.获取执行脚本的名字
echo $0
4.检查是否是超级用户
UID是一个重要的环境变量,可以用于检查当前脚本是以超级管理员运行还是普通用户来运行此脚本,例如: