本篇博文主要向读者介绍shell的环境以及熟悉shell的基本特性
本篇博文中所涉及的所有实例都是在ubuntu15.04版本下演示的
1.shell简介
shell脚本通常是以 #! /bin/bash 为起始的文本文件,有俩中运行脚本的方式,一种是以bash解释器运行
bash script.sh
如果学过python的话,你会感觉和我们用python解释器运行python是很类似的
我们也可以让脚本单独来运行,但前提是我们得赋予脚本文件可执行权限
chmod a+x script.sh
./script.sh
bash中每个命令之间可以使用分号或换行符来分割
cmd1;cmd2;cmd3
2.终端打印
echo是用于终端打印的基本命令
在默认情况下echo在每次调用后会添加一个换行符
我们可以用如下3种方式来使用echo来打印一个字符串
echo "Welcome to Bash"
echo 'Welcome to Bash'
echo Welcome to Bash
以上3中方式都可以打印字符,但是却各有优缺点
1.使用不带引号的echo时,没法显示文本中的;
变量替换在单引号中无效
另一种终端打印方法为printf
printf "Hello,world\n"
3.Bash变量
变量是每种语言中必不可少的部分,同样Bash中也有变量,其就是我们平时接触的环境变量
变量可以通过如下方式赋值
TEST=value
在变量名前加$便可打印
echo $TEST
我们也可以在echo的双引号中引用变量
echo "$TEST"
获得变量值的长度
length=${#TEST}
echo $length
识别当前的shell
echo $SHELL
4.数学运算
shell中我们可以用let (())或[]来执行基本的算数运算
v=1
v1=2
let r=v1+v2
echo $r
res=$[v1+v2]
echo $res
5.重定向
在Bash中我们会经常用到将某些内容重定向到某个文件
将echo显示的内容重定向到temp.txt
echo "Hello,world" > temp.txt
此命令会先将原来temp.txt中的内容清空,然后才写入字符串
将内容追加到目标文件
echo "I am Shreck" >> temp.txt
6.数组
数组是shell非常重要的组成部分,它会借助索引将独立的数据存储为一个集合
数组定义如下
arr=(1,2,3,4)
echo $arr
7.别名
别名就是一种便捷方式,以省去用户输入一长串命令序列的麻烦
alias install='sudo apt-get install'
该命令执行后只是暂时的,要想永久保存还是得写在.bashrc中
8.获取终端信息
tput和stty是当前终端的处理工具
9.函数和参数
function func() { echo "hello"; }
func
当然也可以给参数传递参数
function func() { echo $1; echo $2; }
func hello world
10.循环
for循环
for var in list;
do
commands;
done
for也可以采用C中的格式
for((i=0;i<10;i++))
{
}
while循环
while condtion
do
commands;
done
11.比较
if条件
if condition;
then
commands;
fi
else if
if condition;
then
commands;
else if condition;
then
commands;
else
commands;
fi