Shell相关知识

本文详细介绍了Shell脚本的基础知识,包括数组操作、运算符使用、条件判断、流程控制、函数定义及常用Shell工具的使用方法,是初学者入门Shell编程的理想指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Shell数组

创建空数组

   arr1=()
向数组中添加值的方法
    1.创建非空数组:arr2=(赋值)
    2.arr[0]=赋值
获取数组中的元素
    echo "数组的元素为:${arr[0]}"

    使用@ 或 * 可以获取数组中的所有元素
    echo "数组的元素为:${arr[*]}"
    echo "数组的元素为:${arr[@]}"
获取数组的长度
    echo "数组的长度为:${#arr[*]}"
    echo "数组的长度为:${#arr[@]}"
遍历数组
    arr=(赋值)
    for i in ${arr[*]}
    do
        echo $i
    done

Shell运算符

=、-、*、/、%
使用echo、expr使用运算符
    echo $[a+b]或echo $((a+b))(不需要有空格)
    expr $a + $b(需要有空格)
以上两种方法只支持整数运算

条件判断

整数之间比较地运算符
    -le    小于等于 
    -ne    不等 
    -lt    小于 
    -gt    大于
    -eq    等于
    -ge    大于等于
文件权限的判断
    -r 文件名    可读
    -w 文件名    可写
    -x 文件名    可执行
按照文件类型判断
    -f    文件存在并且是一个常规的文件
    -e    文件存在
    -d    文件存在并是一个目录

流程控制

if判断
    基本语法:
    if [ 条件判断式 ];then 
      程序 
    fi 
    或者 
    if [ 条件判断式 ] 
     then 
        程序 
    elif [ 条件判断式 ]
       then
              程序
    else
          程序
    fi
    注意事项:
     (1)[ 条件判断式 ],中括号和条件判断式之间必须有空格
     (2)if后要有空格

case语句
    基本语法:
    case $变量名 in 
     "值1") 
        如果变量的值等于值1,则执行程序1 
        ;; 
      "值2") 
        如果变量的值等于值2,则执行程序2 
        ;; 
      …省略其他分支… 
      *) 
        如果变量的值都不是以上的值,则执行此程序 
        ;; 
    esac
     注意事项:
     (1)case行尾必须为单词“in”,每一个模式匹配必须以右括号“)”结束。
     (2)双分号“;;”表示命令序列结束,相当于java中的break。
     (3)最后的“*)”表示默认模式,相当于java中的default。
for循环
    基本语法1:
    for (( 初始值;循环控制条件;变量变化 )) 
      do 
         程序 
      done

    基本语法2:
    for 变量 in 值1 值2 值3… 
      do 
        程序 
      done
while循环
    基本语法:
    while[条件判断式]
        do
           程序
        done

read读取控制台输入

是一个小工具
基本语法:read(选项)(参数)
选项:
    -p    指定读取值时的提示符
    -t    指定读取值时等待的时间
参数:
    变量    指定读取的变量名

函数

系统函数
    语法:
        basename
        dirname(获取绝对路径)
自定义函数
    语法:
        [function] 函数名[()]
        {
        Action;
        [return int]
        }
       分为两种:带参与不带参

Shell工具

cut
    用法:
       cut[选项参数] filename

    选项参数        功能
       -f        列号,提取第几列
       -d        分割符,按照指定分隔符分割列
       -c        制定具体的字符
sed
    用法:
       sed [选项参数] ‘command’filename

    选项参数        功能
       -e        直接在指令列模式上进行sed的运动编辑
       -i        直接编辑文件

    命令功能描述:
    命令        功能描述
       a        新增,a的后面可以接字串,在下一行出现
       d        删除
       s        查找并替换
awk
    用法:
       awk [选项参数] ‘pattern1{action1}  pattern2{action2}...’ filename
       pattern:表示AWK在数据中查找的内容,就是匹配模式
       action:在找到匹配内容时所执行的一系列命令

    选项参数        功能
       -F        指定输入文件拆分割符
       -v        赋值一个用户定义变量

    awk的内置变量
    变量        说明
    DILENAME    文件名
    NR        已读的记录数
    NF        浏览记录的域的个数
sort
    基本语法:
    选项        说明
    -n        依照数值的大小排序
    -r        以相反的顺序来排序
    -t        设置排序时所用的分割字符
    -k        指定需要排序的列
       

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值