shell 脚本通常是以#!起始的文本文件,如:
#!/bin/bash
在Bash中,每个命令或命令序列是通过分号或者换行符来分隔的,如:
$cmd1 ; cmd2
它等同于:
$cmd1
$cmd2
echo是用于终端打印的基本命令,默认情况下每次调用后会添加一个换行符(可使用 -n参数来忽略结尾的换行符),它有三种打印方式
带双引号的文本:
$echo "welcome to bash"
welcome to bash
不带双引号的文本:
$echo welcome to bash
welcome to bash
使用单引号的文本:
$echo 'text in quote'
text in quote
注:1、想打印一些特殊符号如'!'(后面还跟着其他字符)应在其之前加一个转义字符'\'或者不加双引号
2、使用不带引号的echo时,你没法在所要显示的文本中使用,因为在bash shell中被用作命令界定符
3、使用带单引号的echo时,bash不会对单引号中的变量(如$var)求值,而只是照原样显示
4、echo接受双引号字符串内的转义序列作为参数,要使用转义序列则采用echo -e "包含转义序列的字符串",例如:
echo -e "1\t2\t3"
1 2 3
5、打印彩色输出,每种颜色都有对应的颜色码,如:重置=0,黑色=30,红色=31,绿色=32,黄色=33,蓝色=34,洋红=35,青色=36,白色=37。要打印彩色文本可输入如下命令:
echo -e "\e[1;31m This is red text \e[0m"
This is red text
\e[1;31m将颜色设为红色,\e[0m将颜色重置,只需将31替换成不同的颜色码即可
6、设置彩色输出背景,经常使用的颜色码为:重置=0,黑色=40,红色=41,绿色=42,黄色=43,蓝色=44,洋红=45,青色=46,白色=47。要打印彩色背景文本可输入如下命令:
echo -e "\e[1;42m Green background \e[0m"
另一个可用于终端打印的命令是printf,它使用的参数和C语言中的printf函数一样,默认不会自动添加换行符,可使用格式化字符串,例如:
#!/bin/bash
printf "%-5s %-10s %-4s\n" No Name Mark
输出为:
No Name Mark