shell作业

发布于:2024-12-07 ⋅ 阅读:(30) ⋅ 点赞:(0)

计算器

#!/bin/bash
num1=$1
num2=$3
op=$2
case $op in
   "+")
       echo $((num1 + num2))
      ;;
   "-")
       echo $((num1 - num2))
      ;;
   "*")
       echo $((num1 * num2))
      ;;
   "/")
       if [ $num2 -ne 0 ]; then
           echo $((num1 / num2))
       else
           echo "除数不能为0"
       fi
      ;;
  *)
       echo "未知符号,乘号请用反斜杠转义后再使用"
      ;;
esac

阶乘

#!/bin/bash
# 定义计算阶乘的函数
factorial() {
  local n=$1
   if [ "$n" -le 0 ]; then
       echo "参数必须为正整数"
       exit 1
    fi
    local res=1
   for ((i=1; i<=n; i++)); do
       res=$((res * i))
   done
   echo $res
}
# 提示用户输入正整数n
echo "请输入一个正整数:"
read n
# 检查输入是否为空
if [ -z "$n" ]; then
   echo "请输入一个有效的数字"
   exit 1
fi
# 调用求阶乘的函数并输出结果
result=$(factorial "$n")
echo "$n的阶乘是 $result"

获取ipv4地址

ipv4=(`ip a | grep eth0 | awk '{print $2}'| sed -n '2p' | cut -d/
-f1`)
echo ipv4:$ipv4

定时任务

# m h dom mon dow   command
 * * *   *   *    bash /home/f4uit/test/ipv4.sh >>
/home/f4uit/test/1-ipv4.sh

重启脚本

#! /bin/bash
while true; do
      reboot
done

无限重启

法一

sudo crontab -e
# m h dom mon dow   command
@reboot             /bin/bash /home/f4uit/test/restart.sh

法二

sudo vim /etc/systemd/system/restart.service
# [Unit] 部分定义了服务的元数据和其他服务单元的依赖关系
[Unit]
Description=Custom Script to Run at Boot # 服务的描述
# [Service] 部分定义了服务的主要执行命令和其他运行时设置
[Service]
ExecStart=/home/f4uit/test/restart.sh # 服务启动时执行的命令
# 如果脚本失败了,systemd会尝试重新启动服务
Restart=always
# 以root用户身份运行服务
User=root
# 如果脚本依赖于特定的工作目录,这里可以指定
# WorkingDirectory=/home/f4uit/test
# [Install] 部分定义了如何将服务安装为systemd的目标(比如开机自启)
[Install]
# 指定服务应该在哪个目标(target)下运行,multi-user.target是常见的非图形
界面启动级别
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl start restart.service
sudo systemctl enable restart.service

网站公告

今日签到

点亮在社区的每一天
去签到