编写shell脚本

基本命令#

命令 说明
ls 列出目录中的文件和子目录。
cd 切换当前工作目录。
pwd 显示当前工作目录的路径。
mkdir 创建新目录。
rm 删除文件或目录。
cp 复制文件或目录。
mv 移动文件或目录。
touch 创建空文件或更新文件的时间戳。
cat 连接文件并打印到标准输出。
grep 在文件中搜索指定模式。
awk 用于处理文本文件的命令语言。
sed 流式文本编辑器,用于过滤和转换文本。
echo 在标准输出上打印文本。
chmod 更改文件或目录的权限。
chown 更改文件或目录的所有者。
ps 显示当前运行的进程。
top 实时显示系统中的进程信息。
kill 终止进程。
ifconfig / ip 显示和配置网络接口。
ping 向主机发送 ICMP 回显请求。
traceroute / tracert 显示数据包传输路径。
ssh 安全地远程登录到另一台计算机。
scp 在本地主机和远程主机之间安全地复制文件。
tar 压缩和解压缩文件。
gzip / gunzip 压缩和解压缩文件。
read 读取输入到一个变量
date 输出日期时间
whoami 打印当前用户

脚本示例#

#!/bin/bash

# 定义函数来生成消息
generate_message() {
    local name=$1
    local age=$2

    if [ $age -le 18 ]; then
        echo "嗨,$name。您是年轻的!"
    else
        echo "您好,$name。您已经是成年人了!"
    fi
}

# 提示用户输入姓名
echo "请输入您的姓名:"
read name

# 提示用户输入年龄
echo "请输入您的年龄:"
read age

# 调用函数生成消息
generate_message "$name" "$age"

# 使用for循环演示多次调用函数
for i in {1..3}; do
    echo "请输入第 $i 个人的姓名:"
    read name

    echo "请输入第 $i 个人的年龄:"
    read age

    # 调用函数生成消息
    generate_message "$name" "$age"
done

shell脚本中也有变量,函数,条件分支和循环等。首先generate_name()就是定义了一个函数,内部使用local来声明一个局部变量,$1表示第一个入参,$2表示第二个入参。
条件分支使用if开启,使用fi结束,条件语句要放到方括号中,并且前后必须要空格隔开,-le表示小于等于,还有其他的大于等于-ge,等于-eq等。
for i in{1..3};是一种迭代的写法,表示i依次取1,2,3,然后do开启循环内部逻辑块,然后通过done结束循环。还可以使用

for ((initialization; condition; increment )); do 
    # ... 
done

这种形式,类似于高级语言中的for循环。
这个demo脚本的功能就是读取三次输入的名称和年龄,然后调用函数判断是否年龄大于18了。

环境变量#

可以使用export命令给当前终端添加环境变量。

export $name=zhangsan

如果想要永久保存,可以在.bashrc或者.profile文件中添加export命令来添加环境变量。

猜数字游戏脚本示例:#

#!/bin/bash

# 生成一个1到100之间的随机数
number=$((RANDOM % 100 + 1))

echo "欢迎参加猜数字游戏!"
echo "我已经选择了一个1到100之间的数字。"

# 循环提示用户猜数字,直到猜对为止
while true; do
    echo "请输入您猜测的数字:"
    read guess

    # 检查用户输入是否是数字
    if ! [[ "$guess" =~ ^[0-9]+$ ]]; then
        echo "请输入一个有效的数字。"
        continue
    fi

    # 检查用户猜测的数字与目标数字的大小关系
    if [ "$guess" -lt "$number" ]; then
        echo "太小了,请再试一次。"
    elif [ "$guess" -gt "$number" ]; then
        echo "太大了,请再试一次。"
    else
        echo "恭喜!您猜对了!"
        break
    fi
done

大部分都是上面提到过的了,不过还有一个number的赋值的这个用法我们没见过。$()用来执行命令替换,小括号里面的是要执行的命令,然后将命令执行的结果返回出来,这里就是生成一个1到100的随机数,然后将生成的随机数结果返回给number变量。

作者:cwtxx

出处:https://www.cnblogs.com/cwtxx/p/18718187

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   cwtxx  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示