shell什么是shell
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。
Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。
Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell。
后缀
.sh .bat
编写第一个shell
#!/bin/bash
# echo表示输出
echo "hello world"
运行该脚本 ./路径/脚本名.sh
第一个字符: -:表示文件 d:表示目录 l:表示快捷方式
rw-:这三个字符表示创建文件的用户具有的权限 r:read读 w:write写 x:execute执行
r--:这三个字符表示当前创建该文件用户所在组成员具有的权限
r--:这三个字符表示其他用户具有的权限
修改权限
chmod u + rwx g + rwx o + rwx 文件[增加权限]
chmod u - rwx g - rwx o - rwx 文件[减权限]
r:数字4 w:数字2 x:数字1
通过数字修改权限: chmod 735 文件 rwx -wx r-x
变量 弱语言
#!/bin/bash
name="AAA";
echo "姓名:${name}"
echo "姓名:"${name}
shell 传递参数
#!/bin/bash
name="XXX";
echo "姓名:${name}"
echo "姓名:"${name}
echo "第一个参数值:$1"
echo "第一个参数值:$2"
执行脚本: ./脚本名 传递的值 值2
shell数组
数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。
与大部分编程语言类似,数组元素的下标由 0 开始。
Shell 数组用括号来表示,元素用"空格"符号分割开,语法格式如下:
array_name=(value1 value2 ... valuen)
关联数组--map集合
Bash 支持关联数组,可以使用任意的字符串、或者整数作为下标来访问数组元素。
关联数组使用 declare 命令来声明,语法格式如下:
declare -A site=(["google"]="www.google.com" ["runoob"]="www.runoob.com" ["taobao"]="www.taobao.com")
-A 选项就是用于声明一个关联数组。
关联数组的键是唯一的。
shell基本运算符
算数运算符
#!/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