getopts shift 简单用法

简介:

1、getopts


myoption
#!/bin/bash
while getopts ":a  b" SWITCH;do ( a前面的表示忽略系统报错信息)
case $SWITCH in
  a) echo "-a option" ;;
  b) echo "-b option" ;;
 \?) echo "Unknow option" ;;
 esac
done


./myoption -a
 
myoption
#!/bin/bash
while getopts ":a:b" SWITCH;do (a后的冒号 表示a后面可以添加参数,a前面的冒号表示忽略系 统的报错)
case $SWITCH in
  a) echo "-a option" 
     echo "$OPTARG"(OPTARG是getopts内置的 变量,后面可以跟参数) 
       ;;
  b) echo "-b option" ;;
 \?) echo "Unknow option" ;;
 esac
done

 
op.sh
read -p "a number" A
read -p "b number" B

while getopts ":admp" SW;do
 case $SW in
 a) echo "$[$A+$B]";;
 d) echo "$[$A/$B]";;
 m) echo "$[$A*$B]";;
 p) echo "$[$A-$B]";;
\?) echo "unknow opreation";;
 esac
./op.sh -a
./op.sh -d

OPTIND 是索引指针 在选项中一次移动一个参数
OPTARG 当OPTIND处在一个特定的选项的时候可以 调用后面的参数
OPTING 指向一个参数

2、shift
shift 2 踢掉二个
./my.sh -a -b -c -d ss -e myfile
shift 5 $[OPTIND-1]  踢掉五个参数,引用 myfile
shift
 
a.sh
 

 

 
./a.sh a b
a
b
shift 一次踢去一个
 

本文转自 张玉坡 51CTO博客,原文链接:http://blog.51cto.com/fighter/470024

相关文章
|
Android开发
Android 13 平板Taskbar加载流程
Android 13 平板Taskbar加载流程
2326 0
|
人工智能 安全 大数据
阿里云云市场:全面服务及构建数据要素生态
阿里云云市场:全面服务及构建数据要素生态
|
人工智能 机器人 Shell
【shell】shell数组的操作(定义、索引、长度、获取、删除、修改、拼接)
【shell】shell数组的操作(定义、索引、长度、获取、删除、修改、拼接)
|
JSON 前端开发 中间件
三万字长文让你彻底掌握 FastAPI
三万字长文让你彻底掌握 FastAPI
5504 2
|
Linux
CentOS 7 配置yum阿里源 (三步即可)
CentOS 7 配置yum阿里源 (三步即可)
36731 1
|
Kubernetes 调度 Docker
在 K8S 中部署一个应用 上
在 K8S 中部署一个应用 上
313 0
|
机器学习/深度学习 人工智能 编解码
【DSW Gallery】基于EasyNLP-Diffusion模型的中文文图生成
EasyNLP提供多种模型的训练及预测功能,旨在帮助自然语言开发者方便快捷地构建模型并应用于生产。本文简要介绍文图生成的技术,以及如何在PAI-DSW中基于EasyNLP使用diffusion model进行finetune和预测评估。
【DSW Gallery】基于EasyNLP-Diffusion模型的中文文图生成
|
机器学习/深度学习 数据采集 人工智能
泰坦尼克船员生存预测
泰坦尼克船员生存预测
353 0
泰坦尼克船员生存预测
An动画基础之元件的影片剪辑效果
An动画基础之元件的影片剪辑效果
1126 0
An动画基础之元件的影片剪辑效果
|
机器学习/深度学习 编解码 计算机视觉
深度可分离ViT | SepViT | 深度可分离卷积造就深度可分离Transformer(一)
深度可分离ViT | SepViT | 深度可分离卷积造就深度可分离Transformer(一)
628 0