shell表达式与基本语句

shell表达式与基本语句

一.shell 表达式

expr,let,awk常用命令或者( [] 执行基本的算数运算result=$[a+b])
算数运算

a=10
b=20

val=`expr $a + $b`
echo "a + b : $val"

val=`expr $a - $b`
echo "a - b : $val"

val=`expr $a \* $b`
echo "a * b : $val"

val=`expr $b / $a`
echo "b / a : $val"

val=`expr $b % $a`
echo "b % a : $val"

布尔运算 与或非 ! -o -a
! 取反 -o 或 -a 与

逻辑运算 || &&

字符串运算 = != -z -n $
-z 字符串长度是否为0 -n检查字符串长度是否不为0

文件测试运算符
-c 字符设备文件
-d 文件夹
-f 普通文件
-p 是否有管道文件
-rwx 文件读写执行权限
-e 存在(包括文件)
-s 文件大小是否为0
-L 管道文件
-S 套接字文件

二. 常见语句

shell脚本中的条件语句,循环语句,case 语句

条件语句

if [];then

else

fi

循环语句

//while 循环
while []
do
done

//for循环
for((i=0;i<10;i++));
do

done
//需要跳出循环 用braek continue与c语言用法一致;
//while无限循环
while true
do
    command
done
//for无限循环
for (( ; ; ))
do
done

for循环条件一般格式

//for循环
for i in “file1” “file2” “file3”
for i in /boot/*
for i in /etc/*.conf
for i in $(seq -w 10) --》等宽的01-10
for i in {1…10}
for i in $( ls )
for I in $(< file)
for i in “$@” --》取所有位置参数,可简写为for i

//case 语句

case 值 in
模式1)
    command1
    command2
    ...
    commandN
    ;;
模式2)
    command1
    command2
    ...
    commandN
    ;;
esac

三. 示例

在etc目录寻找某个文件
for循环与条件语句

#!/bin/bash

file="testfile"
tmpfile="test"

read -p "please enter a file name:" file

for tmpfile in $(ls /etc)
do
    if [ $tmpfile = $file ];then
      echo -e "\033[31m$file\033[0m"
    fi
done

case语句

#!/bin/bash

i=0

read -p "please enter a number:" i
case $i in
    1)
       echo -e "\033[31mtest1\033[0m"
     ;;
    2)
       echo -e "\033[31mtest2\033[0m"
     ;;
    3)
       echo -e "\033[31mtest3\033[0m"
     ;;
    4)
       echo -e "\033[31mtest4\033[0m"
    ;;
    *)
       echo -e "\033[31mtest other\033[0m"
    ;;
esac
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值