终端打印
shell脚本通常是一个以#!起始的文本文件,如下所示:
#! /bin/bash
脚本运行方式有两种:
一.将脚本作为命令行参数时的运行方式如下:
$ sh script.sh #假设脚本位于当前目录下
或者
$ sh /home/path/script.sh #使用script.sh 的完整路径
二.将脚本作为具有执行权限的可执行文件:
先让脚本具有可执行权限,可以通过一下方式设置
$ chmod a+x script.sh
该命令赋予所有用户script.sh文件的可执行权限。这个脚本能以下列方式执行:
$ ./script.sh # ./表示当前目录
或者
$ /home/path/script.sh # 使用脚本的完整路径
shell程序读取脚本的首行,查看shebang行是否为#!/bin/bash。他会识别/bin/bash,并在内部以
如下命令行执行该脚本:
$ /bin/bash script.sh
在bash中,每个命令或者命令序列是通过使用分号或换行符来分割的。比如:
$ cmd1; cmd2
它等同于
$ cmd1
$ cmd2
字符#指明注释的开始。注释部分以#为起始,一直延续到行尾。注释行通常用户为代码提供注释信息,或者
注释掉某行代码,暂不执行。
三.实战演练
echo 是用于终端打印的基本命令。
在默认情况下,echo在每次调用后会添加一个换行符。
$ echo "Welcome to Bash"
Welcome to Bash只需要使用带双引号的文本,结合echo命令就可以将该文本在终端中打印出来。类是地,不带双引号的文本
也可以得到同样的输出效果:
$ echo Welcome to Bash
Welcome to Bash
使用单引号也可以完成同样的任务:
$ echo 'text in quote'
如果需要打印!,要么不要放在双引号之中,或者在其前面加一个特殊的转义字符(\)将!转义。
另一个可用于终端打印的命令是printf。printf使用的参数和C语言中的printf函数一样。例如:
$ printf "Hello World"
四.补充内容
一定要留神的是echo和printf中的标志(如-e,-n等)应该出现在命令行内任何字符串之前,否则Bash会将>其视为另外一个字符串。
one.在echo中转义换行符
在默认情况下,echo会将一个换行符追加到输出文本的尾部。可以使用标志-n来忽略结尾的换行符。echo同
样接受双引号字符串内的转义序列(escape sequence)作为参数。如果需要使用转义序列,则采用echo -e“包含转义>序列的字符串”这种形式。例如:
echo -e "1\t2\t3"
1 2 3
two.打印彩色输出
在终端中生成彩色输出相当好玩,我们可以使用转义序列来实现。
每种颜色都有对应的颜色码。比如:重置=0,黑色=30,红色=32,绿色=32,黄色=33,蓝色=34,洋红=35,
青色=36,白色=37。
要打印彩色文本,可输入如下命令:
echo -e "\e[1;31m This is red text \e[0m"
\e[1;31将颜色设置为红色,\e[0m将颜色重新置回。你只需要将31替换成想要的颜色码就可以了。
要设置彩色背景,经常使用的颜色码是:重置=0,黑色=40,红色=41,绿色=42,黄色=43,蓝色=44,洋红=45,青色=46,白色=47.
要打印彩色文本,可输入如下命令:
echo -e "\e[1;42m Green Background \e[0m"
关于颜色的设置它也有一个公式
颜色=\033[代码;前景;背景m
转载于:https://my.oschina.net/shawnking/blog/313391