Shell脚本

Shell变量

image

  • 变量定义
#!/bin/bash
my_name="sunpy"
  • 变量使用
echo ${my_name}
  • 只读变量
readonly my_url
  • 删除变量
unset my_url

字符串

  • 字符串拼接
#!/bin/bash
my_name="sunpy"
my_str="my name is "${my_name}", hello!"
echo ${my_str}
  • 获取字符串长度
echo ${#my_str}
  • 提取子字符串
echo ${my_str:3:4}

Shell数组

  • 数组定义
my_arr=("f" 2 "k")
  • 数组元素引用
my_arr[1]="uc"
  • 读取数组
${my_arr[1]}
  • 读取数组所有元素
${my_arr[@]}
  • 获取数组长度
${#my_arr[@]}

Shell运算符

  • 算术运算符
    image

image

image

  • 布尔运算符
    image

  • 逻辑运算符
    image

  • 字符串运算符
    image

  • 文件测试运算符
    image

echo命令输出

  • 显示普通字符
echo "my name is zhangsan"
  • 显示转义字符
echo "\" my name is zhangsan\""
  • 显示变量
# read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量
read name
echo ${name}" get very good!"
  • 显示换行
echo -e "OK! \n" # -e 开启转义
echo "It is a test"
  • 显示不换行
echo -e "OK! \c" # -e 开启转义 \c 不换行
echo "It is a test"
  • 追加写入
echo "wo tu le " >> test.sh

printf命令输出

image

image

printf "printf operate\n"
printf "%-10s %-8s %-4s\n" 姓名 性别 体重kg

控制语句

  • if then fi

  • if then else fi

if condition1
then
    command1
elif condition2 
then 
    command2
else
    commandN
fi
  • for 循环
for loop in 1 2 3 4 5
do
    echo "The value is: $loop"
done
  • while 语句
value=1
while(( $value<=5 ))
do
    echo $value
    let "value++"
done
  • until循环
until [ ! $val -lt 10 ]
do
   echo $val
   val=`expr $val + 1`
done
  • 跳出循环
    break跳出循环
    continue跳出当前循环
until [ ! $val -lt 10 ]
do
        if [ $val = 8 ]
        then
                break;
        fi
   echo $val
   val=`expr $val + 1`
done

Shell函数

function doExec() {
        let my_exec="now var is exec";
        return my_exec;
}

echo "doExec return value "$?

image

Shell输入输出重定向

echo "select * from bus_auth_check_info" > sunpy.txt

将信息写入文件,删掉该文件,重新创建文件,写入信息

echo "select * from emp_user" >> sunpy.txt

将信息写入文件,将信息增加的文件的尾部。

备注

  • vim显示行号
    :set nu
  • 整行删除
    双击D
  • vim搜索文本
    /
    向后搜索
    n
posted @ 2023-05-09 22:53  sunpeiyu  阅读(3)  评论(0编辑  收藏  举报