Shell脚本学习笔记

本文介绍了Shell脚本的基础知识,包括语法、执行方式、输入输出操作、变量定义与使用、环境变量查看、条件测试和控制结构(如if、for、while、until循环)。此外,还讲解了函数定义以及一些常用的内置命令,如echo、read、grep和cut。

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

shell脚本

shell是用户跟内核通信的方式之一

语法

定义开头

#!/bin/bash
#!用来声明脚本由声明shell解释,默认使用shell

执行方式

在当前工作目录中,

  1. ./xxx.sh
    先按照文章中指定的解析器解析,如果指定的解析器不存在,才会使用系统默认的解析器
  2. bash xxx.sh
    指明先用bash解析器解析
  3. . xxx.sh
    直接使用默认解析器解析(不会执行第一行#!,但第一行还是要写)

输入

read:在一行上显示和添加提示 需要加上-p
eg:read -p “请输入Num的值:” num

输出

echo

变量

定义变量:
变量名=变量值 eg:num=10
引用变量:
$变量名
unset:清楚变量值

查看环境变量

env

$#:传给shell脚本参数的数量
$*:传给shell脚本参数的内容
$1:运行脚本是传递给其参数的内容
$0:当前执行的进程名
$$:当前进程的进程号

脚本变量的特殊用法

"‘’(双引号): 包含的变量会被解释
"(单引号): 包含的变量会当做字符串解释
``(数字键 1左面的反引号): 反引号中的内容作为系统命令,并执行其内容,可以替换输出为一个变量
$ echo "today is date "
today is 2012 年 07 月 29 日星期日 12:55:21 CST

条件测试

test命令:用于测试字符串、文件状态和数字
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
把字符串转化为数字:$((num))

控制结构【条件判断和循环】

条件判断:使用if语句进行条件判断,结合then、elif(可选)和fi
循环:
for循环:用于遍历一系列值。
while循环:在满足条件时循环执行一段代码。
until循环:在条件为假时循环执行一段代码。

# 条件判断
if [ $num -eq 0 ]; then
    echo "Number is zero."
elif [ $num -gt 0 ]; then
    echo "Number is positive."
else
    echo "Number is negative."
fi   
#fi为if语句的结束标志

# for循环
for i in 1 2 3 4 5; do
    echo $i
done

# while循环
counter=0
while [ $counter -lt 5 ]; do
    echo $counter
    counter=$((counter + 1))
done

# until循环
counter=0
until [ $counter -ge 5 ]; do
    echo $counter
    counter=$((counter + 1))
done

函数

用户自定义函数:
用户可以通过关键字function或直接使用函数名来定义函数。
例如,定义一个简单的打印欢迎消息的函数:

welcome() {
    echo "Welcome to my script!"
}

常见的内置函数包括echo、read、grep、cut、sed
grep:常见的内置函数包括echo、read、grep、cut、sed
grep “keyword” file.txt # 在文件中搜索关键字
grep -i “keyword” file.txt # 忽略大小写搜索
grep -r “pattern” dir/ # 递归搜索目录中的文件

cut:用于从文件或标准输入中提取指定字段或列
cut -f 1,3 file.txt # 提取文件中的第1和第3列
cut -d “,” -f 2 file.csv # 使用逗号作为分隔符提取第2列
echo “example” | cut -c 2-5 # 提取字符串中的第2到第5个字符

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值