小试牛刀-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! “

printf使用引用文本由空格分隔的参数。也可以在printf中使用格式化字符串,还可以指定字符串的宽度、左右对齐方式等。eg:printf  "%-5s %-10s %-4.2f " 1 James 90.9989

其中,%-5s指明了一个格式为左对齐且宽度为5的字符串替换(-表示左对齐,默认采用右对齐)。

d、在echo中转义换行符:默认情况下,echo会将一个换行符追加到输出文本的尾部。可以使用-n来忽略结尾的换行符。echo同样接受双引号字符串内的转义序列作为参数。如果需要使用转义序列,则采用echo -e "包含转义序列的字符串",eg:echo -e "1 2 3" 结果: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"

原文地址:https://www.cnblogs.com/gary-guo/p/6070212.html