一个简单地shell脚本
编写1.sh
#!/bin/bash echo "hellO" cd / ls ./
执行使用/bin/bash
或者之间使用bash此时bash已经在系统变量当中
或者修改 脚本的权限直接执行因为此时在文件当中已经注明需要使用哪一个 解释器执行
变量:
自定义变量
#!/bin/bash name=webcyh age=21 echo $name 的年龄为 $age
系统变量
echo 系统变量为当前用户名 $USER 家目录为 $HOME
命令返回的变量
注意使用``和不使用的区别使用的是命令表达式 并且等于号不能存在空格
v=`date` v1=date v2=`ls /` echo $v echo $v1
echo $v2
表达式命令
- 算数运算符
- 关系运算符
- 布尔运算符
- 字符串运算符
- 文件测试运算符
条件控制
#!/bin/bash if mkdir test then echo 创建目录成功 else echo 创建失败 fi
添加文件判断 【 速度 】注意这个中括号存在左右空格 参数 -d 是否为目录 -f 是否为文件 -w是否可读 -x是否可执行 -r是否可查看 -e是否存在
#!/bin/bash if [ -d ./test ] then echo 这个目录已经存在 elif mkdir test then echo 创建目录成功 else echo 创建失败 fi
数值判断 和数学表达式
-eq 相等
-ne不相等
-gt大于
-ge 大于且等于
-lt小于
-le小于等于
-a 相当于且
-o 或者
a=3 b=4 if [ $a -gt $b ] then echo 大 else echo 小 fi c=$[ $a+$b ] echo $c
字符串判断 逻辑符号之间有空格 参数 -z判断是否为长度为0 如果是则返回true [ -z $a ] [ $a ] 判断是否为空串
if [ $USER = root ] then echo 请切换到普通用户 else echo 欢迎$USER fi
逻辑表达式
if [[ $a -eq $c && $a -lt $b ]] then echo zhen else echo hehe fi
for循环控制
编写一个shell判断某目录下的文件是文件还是目录
#!/bin/bash base=/ for va in ` ls $base ` do if [ -f $va ] then echo 这是一个文件$va// rm -rf $base/$va else echo 这不是文件$va fi done
c语言风格的循环
#!/bin/bash sum=0 for((i=0;$i<=100;i++)) do #!/bin/bash sum=0 for((i=0;$i<=100;i++)) do sum=$[ $sum + $i ] done echo $sum
php 文件传递参数
shell传递参数
#!/bin/bash sum=0 a=$1 for((i=0;$i<=$a;i++)) do sum=$[ $sum + $i ] done echo $sum
test表达式
type test查看文件类型
help test查看帮助文档
为真则状态为0 为假状态为非0
[root@VM_0_11_centos ~]# test 1 -eq 2 [root@VM_0_11_centos ~]# echo $? 1 [root@VM_0_11_centos ~]#