shell基础

一个简单地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 ~]# 
原文地址:https://www.cnblogs.com/webcyh/p/11414868.html