Shell脚本:
shell是什么:
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。
Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。
Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell。
后缀:
.sh .bat
权限指令:
使用ls -l可以查看对文件得权限
例如: -rw-r--r--. 1 root root 51 7月 16 22:13 demo1.sh
其中 最前面得 -rw-r--r--
分为4个部分:-
rw-
r--
r--
-
第一部分
-
:-
表示文件,d
表示目录,l
表示快捷键; -
第二-四部分:
r
表示读,w
表示写,x
表示执行,-
代表无; -
第一个组
rw-
:表示当前创建文件的用户具有的权限; -
第二个组
r--
:表示当前创建该文件的用户所在的组成员具有的权限; -
第三个组
r--
:表示其他用户具有的权限;
修改权限:
增加权限:
chmod u+rwx g+rwx o+rwx 文件名
减少权限:
chmod u-rwx g-rwx o-rwx 文件名
数字修改权限:
r
=4, //读
w
=2, //写
x
=1; //执通过权限相加的数值来给定权限值
chmod 705 文件名
编写shell:
首先需要拥有
w
写的权限,执行时也需要拥有x
执行的权限;
执行shell:./脚本名 传递的值 值2
输出:
#字符串输出: # echo表示输出 echo "hello world" #输出内容:hello word
带参输出:
name="刘德华"; echo "姓名:${name}" #输出内容:姓名:刘德华 echo "姓名:"${name} #输出内容:姓名:刘德华 echo "第一个参数值:$1" #表示调用时传入的第一个参数 echo "第一个参数值:$2" #表示调用时传入的第二个参数
数组
#Shell 数组用括号来表示,元素用"空格"符号分割开,语法格式如下: array_name=(value1 value2 ... valuen) #Bash 支持关联数组,可以使用任意的字符串、或者整数作为下标来访问数组元素。关联数组使用 **[declare](https://www.runoob.com/linux/linux-comm-declare.html)** 命令来声明,语法格式如下: declare -A site=(["google"]="www.google.com" ["runoob"]="www.runoob.com" ["taobao"]="www.taobao.com")-A 选项就是用于声明一个关联数组。关联数组的键是唯一的。
Shell 基本运算符:
算数运算符
原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。
expr 是一款表达式计算工具,使用它能完成表达式的求值操作。
#!/bin/bash a=100 b=15 c=`expr $a + $b` echo "c=$c"关系运算符
a=10 b=20 # if [ $a -eq $b ] then echo "$a -eq $b : a 等于 b" else echo "$a -eq $b: a 不等于 b" fi布尔运算符
if [ $a -lt 100 -a $b -gt 15 ] then echo "$a 小于 100 且 $b 大于 15 : 返回 true" else echo "$a 小于 100 且 $b 大于 15 : 返回 false" fi控制语句
#if a=10 b=20 if [ $a -eq $b ] then echo "a 等于 b" elif [ $a -gt $b ] then echo "a 大于 b" elif [ $a -lt $b ] then echo "a 小于 b" else echo "没有符合的条件" fi#for for var in item1 item2 ... itemN do command1 command2 ... commandN done