欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

shell 脚本编程 函数定义 脚本中断

程序员文章站 2022-03-05 13:21:54
...

shell 脚本编程 函数定义 脚本中断

shell函数:
将需要重复使用的操作,定义为公共的语句块,叫函数

 语法结构:
 格式1:
 function   函数名  {
        命令序列
        ...

 格式2:
     函数()  {
            命令序列
       }

调用函数:
函数名 参数1 参数2 …
//在函数中使用位置变量来调用参数

位置变量:
#sh test.sh 参数1 参数2
#vim test.sh
#!/bin/bash
echo $1
echo $2

$# : 显示一共有多少个参数
[email protected] : 显示返回的参数
$? : 显示返回iude状态码
$$ :显示当前脚本的进程号

 查看进程: ps  -aux
 杀死进程:kill  -p  PID号

   ctrl+z   放入后台
   jobs    查看后台

 实例:同时创建abc目录且在此目录下创建a.txt文件
 # mymk(){
     mkdir  $1
     cd $1
     touch  $2
 }
 #  mymk  abc  a.txt

中断与退出:
break:结束整个循环
continue: 结束本次循环
exit :结束整个脚本

实例:输出30以内3的倍数
知识点:数组,continue

#!bin/bash
for i in seq 30
do
[ $[i%3 -ne 0] && continue || echo $i
done

字符串截取:

18301593586
183XXXX3586

字符串截取的三种用法:

  1. ${变量名:起始位置:长度}
  2. expr substr “$变量名” 起始位置 长度
  3. echo “$变量名” | cut -b 起始位置-结束位置

字符串替换两种方法:
1.只替换第一个匹配结果:
${变量名/old/new}
2.替换全部匹配结果:
${变量名//old/new}

字符串掐头去尾:
1.从左往右,最短匹配删除: ${变量名#关键词}
2.从右往左,最长匹配删除: ${变量名##关键词}
3.从右往左,最短匹配删除: ${变量名%关键词
}
4.从右往左,最长匹配删除: ${变量名%%关键词
}

  1. ${变量名:起始位置:长度}
    注意:起始位置从0开始

    phone=183015935786

    统计字符串的长度:

    echo ${#phone}

    11
    截取前三位:
    #echo ${phone:0:3}
    //如果是从第一个开始截取,可以省略0不写
    #echo ${phon::3}

  2. expr substr ""1变量名" 起始位置 长度 注意:起始编号从1开始,注意与{}区分开

    截取前三位:
    #expr substr “$phone” 1 3
    183

  3. echo “$变量名” | cut -b 起始位置-结束位置
    注意:起始编号从1开始,与expr类似

    截取前三位:
    #echo “KaTeX parse error: Expected 'EOF', got '#' at position 53: …截取 截取后六位: #̲echo "phone” | cut -b 6-
    //如果截取到最后一位,可忽略不写

    截取单个第六位字符:
    #echo “$phone” | cut -b 6

    截取多个不连续的字符:用逗号分隔
    #echo “$phone” | cut -b 6,9,11

实例:生成一个随机密码
#!/bin/bash
x=1234567890 adwqasdwqQWEQWQWEASDQAFWEASDWAEASD
for i in seq 8
do
num=[RANDOMtmo=[RANDOM%62] tmo=[x:num:1]
pass=[pass][pass]tmp
done
echo $pass