shell脚本入门

介绍: shell其实就是命令解释器,他的作用就是解释用户输入的命令,linux中一个个命令就可以理解为一个个的小程序,我们输入命令,输出结果,但是其实都是shell在帮助我们实现。 我们从输入系统的账户密码开始,到登录系统以后的所有操作都是shell在帮我们解释执行的。

shell简单入门

1、hello world

  • 首先我们创建一个文件:
touch  text.sh
vi text.sh               #编辑文件

这里的文件名字是可以随便起名的,因为我们要编写shell命令,所以我们一般起后缀名为sh

  • 写入内容
#! /bin/bash
echo "hello world"

我们的shell脚本就编写好了

chmod 777 text.sh #让文件变成可以执行的文件   chmod +x text.sh
./text.sh   #执行脚本我们就可以看到 hello world 的字样了

2、shell变量

  • 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头
  • 中间不能有空格,可以使用下划线(_)
  • 不能使用标点符号
  • 不能使用bash里的关键字(可用help命令查看保留关键字)
#! /bin/bash
var="hello world" #定义变量
echo $var         #输出变量   "$+变量的名字"

这里的var变量我们也可以将他赋值为命令结果:

var=$(pwd)       #输出当前的目录

(1)、shell写循环操作:

1、--------------------------------------------
#! /bin/bash
for((i=0;i<=10;i++))
do
echo $i
done
2、--------------------------------------------
#! /bin/bash
for name in $(ls /home)   # name为变量
do
echo $name
done

(2)、删除变量:

#! /bin/bash
var="hello world"
unset var        #删除变量var
echo $var       
#输出结果为空

(3)、字符串拼接:

#! /bin/bash
var="hello"
varr="world ${var}" #字符串拼接 也可以为: varr="world "${var}" "

(4)、定义数组:

#! /bin/bash
var=(a b c d)
echo $var  #默认输出索引为0的
echo ${var[1]} #输出
----------------------------------------------------
var[0]=a
var[1]=b
var[2]=c
echo ${var[1]}

(5)、获取字符串长度:

#! /bin/bash
var="abcde"
echo ${#var}	#字符串的长度

(6)、提取字符串:

#! /bin/bash
var="abcde" 
echo ${var:1:4}   #提取索引1到4的字符串内容

(7)、查找字符在字符串中的位置:

#! /bin/bash
var="hello word"
echo `expr index "${var}" o`  #返回o字符的位置5

(8)、多行注释:

:<<EOF
注释内容...
注释内容...
EOF

3、参数传递

#! /bin/bash
for i in $*
do 
echo $i
done
[root@iz2ze147nx2245g08b0sjfz ~]# ./text.sh a 2 c  #参数传递,空格分隔开 结果打印 a 2 c

4、shell运算

(1)、算数运算
原生bash不支持简单的数学运算,但是可以通过其他命令来实现,expr 是一款表达式计算工具,使用它能完成表达式的求值操作。 
- #减法
+ #加法
* #乘法,一般要 \* 这样使用在expr中
/ #除法,取整
% #取余数
#! /bin/bash
a=123
b=456
echo `expr $a - $b ` #注意``该符号,使用expr计算工具
(2)、关系运算符

#! /bin/bash
var="abc"
var="abc"
if [ $var -eq $var1 ]         #一定要注意空格if后面和[]里面空格
then
echo "相等"
else
echo "不相等"
fi

(3)、布尔和逻辑运算类型
!        #非运算
-o        #或运算
-a  	  #与运算
&&    		#逻辑and
||  		#逻辑or

#! /bin/bash
var=100
if [ $var gt 80 -a $var lt 120 ]
then
echo "正确"
else
echo "不正确"
fi                              #输出争取

(4)、文件测试运算符

#! /bin/bash
var="/root/text.sh"
if [ -e  $var ]   #-e判断是否存在
then
echo "存在文件"
else
echo "不存在改文件"
fi
-------------------------------------------------
存在文件
# Linux 

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×