shell编程基础知识

#!/bin/bash
注释信息:#

代码注释:

缩进,适度添加空白行

语言:编程语法格式,库,算法和数据结构

编程思想:问题空间–》解空间

变量:

局部变量:
本地变量:当前shell进程
环境变量:当前shell进程及子进程
    定义环境变量:export  name=value
    取消环境变量: unset   name

位置参数变量
特殊变量

数据类型: 字符型,数值型
弱类型的语言,所有类型当初字符型

算数运算:
mark
let var=expression

位置变量(内置的):

$1 $2 $3

$@ :所有的参数
$* :所有的参数
$# :参数的个数

$$ :当前进程的ID

$? :上一条命令的执行结果
$! :

read 变量名 变量名: 键盘接受的值赋给变量

read -p "提示“ 变量名 :

变量运算:

  349  n=$(expr 1+2)
  350  echo $n
  351  echo $[1+2]
  352  echo $[1+2 ]
  353  echo $((2+2))

  357  a=1 
  358  b=2
  359  echo $((a+b))
  360  echo $[a+b]
  361  let 1+3
  362  let n=1+3
  363  echo $n

测试(判断):

格式1: test 条件表达式
格式2: [ 条件表达式 ] 例如: [ $USER = “root” ]
格式3: [[ 条件表达式 ]] 支持正则

文件测试:

数值比较:

字符串比较:

分支

read -p "input a number:" n
if [ "${n}" -gt 18 ] ;then
    echo "可以玩游戏"
elif [ "${n}" -lt 18 ];then
        echo "小了"
else
    echo "猜对了" 
fi

循环

#for循环
for i in $(seq 10)
do
    n=$[${i}%2]
    if [ "$n" -eq 0 ]; then
        echo ${i}
    fi
done

while 循环:

while true
do
read -p "输入:"  val

if [ ! -z "${val}" ] ;then
    if [ "$val" -gt 18 ] ;then
        echo "大了"
    elif [ "$val" -lt 18 ];then
        echo "小了"
    else
        echo "猜对了"
    fi
else
    echo "没有输入值"
fi
done

while循环的条件

n=0
while [ "$n" -lt  5 ]
do
   echo "ok"
   let n=n+1

done

逻辑判断:
read -p ">>:" n
if [ "$n" -le 5  -a "$n" -gt 2  ];then
   echo "ok"
else
   echo "$n"

fi
for计数循环
for  ((var=1;var<=10;var=var+2))

do
    echo "-----------"
    echo '$var is ' $var

done

例2:

for i in {1..10}
do

    echo "start :"$i
    if [ $i -eq 5 ]; then
        i=1
    fi
    echo "last:" $i

done

批量创建用户:

while read u
do
   id $u 2>/dev/null
   if [ $? -ne 0 ];then
    useradd $u
   echo "用户:$u 存在" 
   fi
done < add_user.txt

子进程在后台工作

i=1
while [ $i -lt 5 ]
do
let i++
 echo "hello"
{
sleep 3
  echo "爱 $i 年 "
}&
done


   useradd $u
   echo "用户:$u 存在" 
   fi
done < add_user.txt

子进程在后台工作

i=1
while [ $i -lt 5 ]
do
let i++
 echo "hello"
{
sleep 3
  echo "爱 $i 年 "
}&
done

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值