首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Shell for循环和select循环语句

Shell for循环和select循环语句

作者头像
云计算小黑
发布2022-12-28 20:32:06
发布2022-12-28 20:32:06
9550
举报
文章被收录于专栏:小黑博客小黑博客

for循环格式

代码语言:javascript
复制
for 变量名 in 变量取值列表
do 
    指令
done

示例 打印5 4 3 2 1 5个数字

代码语言:javascript
复制
#!/bin/bash
for i in 5 4 3 2 1
do
   echo $i
done
方法二
#!/bin/bash
for (( i=5;i>0;i--))
do
   echo $i
done 

PS:改名命令rename命令 jpg格式的图片改成png

代码语言:javascript
复制
rename ".jpg" ".png" "*.jpg"

打印九九乘法表

代码语言:javascript
复制
#!/bin/bash
for num1 in `seq 9`
do
    for num2 in `seq 9`
    do
        if [ $num1 -ge $num2 ];then
            if ((($num1*$num2)>9)) ;then
                echo -en "${num1}x${num2}=$((num1*num2)) "
            else
                echo -en "${num1}x${num2}=$((num1*num2))  "
            fi
        fi
    done
echo " "
done

计算1-100的和

代码语言:javascript
复制
#!/bin/bash
for ((i=1;i<=100;i++))  
do
    ((sum=sum+$i))
done
echo "$sum"

select循环语句

代码语言:javascript
复制
select 变量名 [ in 菜单取值列表]
do 
    指令
done

示例:select 循环打印简单菜单项 1、直接使用列表字符串

代码语言:javascript
复制
#!/bin/bash
select name in zhansan lisi wanger
do
    echo $name
done

2、采用数组作为变量打印

代码语言:javascript
复制
#!/bin/bash
array=(zhansan lisi wanger)
select $name in "${array[@]}"
do
  echo "$name"
done
代码语言:javascript
复制
#!/bin/bash
PS3="please select a num from menu:"     #PS3是select循环的提示符
select name in zhansan lisi wanger
do
    echo  -e "I guess you selected the menu is:\n $REPLY) $name"     #REPLY变量是菜单项对应的数字
done

示例 打印选择菜单 ,选择一键安装不同Web服务

代码语言:javascript
复制
1.[install lamp]
2.[install lnmp]
3.[exit]
代码语言:javascript
复制
#!/bin/bash
RETVAR=0
path=/server/scripts                #定义脚本路径
[ ! -d "$path" ] && mkdir $path -p  #如果不存在就创建
function Usage() {
    echo "Usage :$0 argv"
    return 1
}
function InstallService() {
    if [ $# -ne 1 ]; then
    Usage
    fi
    local RETVAR=0
    echo "start installing ${1}."
    sleep 2
    if [ ! -x "$path/${1}.sh" ]; then
        echo "$path/${1}.sh 没有执行权限"
        return 1
    else
        $path/${1}.sh
        return $RETVAR
    fi
}
function main() {
PS3="please input the num you want:"
select num in "Install lamp" "Install lnmp" "exit"
do
  case "$num" in
  "Install lamp")
      InstallService lamp
      RETVAR=$?
      ;;
  "Install lnmp")
      InstallService lnmp
      RETVAR=$?
      ;;
  exit)
      echo bye.
      return 3
      ;;
  *)
      echo "the num you input must be {1|2|3}"
      echo "Input error"
  esac
done
  echo $ RETVAR
}
main
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • for循环格式
  • select循环语句
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档