小试牛刀-1.1-2
1、shell环境使得用户能与操作系统的核心功能进行交互;编写脚本通常使用某种基于解释器的编程语言。
2、shell脚本通常是一个以#!/bin/bash起始的文本文件,其中#!位于解释器路径之前。/bin/bash是Bash的解释器命令路径。
有两种方式运行脚本:a、将脚本作为bash的命令行参数;eg:bash script.sh;b、授予脚本执行权限,将其变为可执行文件。eg:chmod a+x script.sh ./script.sh
3、在bash中,每个命令或是命令序列是通过使用分号或换行符来分隔的。eg:$ cmd1;cmd2
等价于
$cmd1
$cmd2
4、终端打印:用户可以通过终端与shell环境进行交互;在终端中打印文本是绝大多数shell脚本和工具日常需要执行的基本任务。
a、echo是用于终端打印的基本命令。在默认情况下echo在每次调用后会添加一个换行符。
b、echo输出可以使用带双引号的文本、不带引号的文本以及带单引号的文本。三者的区别
i)使用不带引号的echo时,没法在所要显示的文本中使用分号(;),因为分号在Bash shell中被用作命令定界符。
ii)变量替换在单引号中无效。
iii)在双引号中要打印特殊字符如”!“,需要添加转义字符"\"。
c、另一可用于终端打印的命令是printf。它使用的参数和C语言中的printf函数一样。eg:printf ”hello world!\n“
printf使用引用文本或由空格分隔的参数。也可以在printf中使用格式化字符串,还可以指定字符串的宽度、左右对齐方式等。eg:printf "%-5s %-10s %-4.2f\n" 1 James 90.9989
其中,%-5s指明了一个格式为左对齐且宽度为5的字符串替换(-表示左对齐,默认采用右对齐)。
d、在echo中转义换行符:默认情况下,echo会将一个换行符追加到输出文本的尾部。可以使用-n来忽略结尾的换行符。echo同样接受双引号字符串内的转义序列作为参数。如果需要使用转义序列,则采用echo -e "包含转义序列的字符串",eg:echo -e "1\t2\t3" 结果:1 2 3
e、打印彩色输出:使用转义序列来完成彩色输出,每种颜色都有对应的颜色码,比如:重置=0,黑色:30,红色=31,绿色=32,黄色=33等
打印彩色文本,输入下列命令:
echo -e "\e[1;31m this is red test \e[0m"
\e[1;31将颜色设为红色,\e[0m将颜色重新置回。只需要将31替换 成想要的颜色码就可以了。
打印彩色文本
echo -e "\e[1;42m Green background \e[0m"