文章目录

  • 前言
    • shift 语法
    • 示例
  • 总结

前言

shift是一条非常有用的命令。对于位置变量或命令行参数,其个数是确定的,可以把所有参数一起赋值给变量$*。位置参数用shift命令左移,将参数变量列表 list 左移指定次数,缺省为左移一次。参量列表 list 一旦被移动,最左端的那个参数就从列表中删除。
shift n是指左移的数量,比如shift 3表示原来的$4现在变成$1,原来的$5现在变成$2等等,原来的$1、$2、$3丢弃,$0不移动。不带参数的shift命令相当于shift 1。


shift 语法

while 循环遍历位置变量或者命令行参量列表时,常用到 shift。

shift [n]

shift是一条非常有用的命令。对于位置变量或命令行参数,其个数是确定的,可以把所有参数一起赋值给变量$*。位置参数用shift命令左移,将参数变量列表 list 左移指定次数,缺省为左移一次。参量列表 list 一旦被移动,最左端的那个参数就从列表中删除。
shift n是指左移的数量,比如shift 3表示原来的$4现在变成$1,原来的$5现在变成$2等等,原来的$1、$2、$3丢弃,$0不移动。不带参数的shift命令相当于shift 1。

示例

  • 查看命令行参数
    shift 命令每执行一次,变量的个数($#)减一,而变量值提前一位
#!/bin/bash
# Usage: args01.sh [args]
while (($# > 0)); doecho $*echo $#shift
done
[root@zaishu sh]# ./args01.sh a b c
a b c
3
b c
2
c
1
  • until 和 shift 命令计算所有命令行参数的和。
#!/bin/bash
# Usage: calc_sum.sh
if [ $# -eq 0 ]; thenecho "Usage: $0 user1 user2 .."exit 1
fisum=0
until [ $# -eq 0 ]; dosum=$((sum+$1))shift
doneecho "sum is : $sum"
[root@zaishu sh]# ./calc_sum.sh 10 20
sum is : 30
  • 创建命令行上的所有用户
#!/bin/bash
# Usage: batch_create_user.sh
if [ $# -eq 0 ]; thenecho "Usage: $0 user1 user2 .."exit 1
fiwhile [ "$1" ] ; doif id $1 &>/dev/null; thenecho $1 is existelseuseradd $1echo "$1 is created"fishift
doneecho "All user is created"
[root@zaishu sh]# ./batch_create_user.sh
Usage: ./batch_create_user.sh user1 user2 ..
[root@zaishu sh]# ./batch_create_user.sh  zha
zha is created
All user is created
[root@zaishu sh]# ./batch_create_user.sh  zha li
zha is exist
li is created
All user is created

总结

shift是一条非常有用的命令。对于位置变量或命令行参数,其个数是确定的,可以把所有参数一起赋值给变量$*。位置参数用shift命令左移,将参数变量列表 list 左移指定次数,缺省为左移一次。参量列表 list 一旦被移动,最左端的那个参数就从列表中删除。
shift n是指左移的数量,比如shift 3表示原来的$4现在变成$1,原来的$5现在变成$2等等,原来的$1、$2、$3丢弃,$0不移动。不带参数的shift命令相当于shift 1。

19. shift,shift n,位置变量,命令行参数控制,shift语法,用法示例相关推荐

  1. python命令行参数解析OptionParser类用法实例

    python命令行参数解析OptionParser类用法实例 本文实例讲述了python命令行参数解析OptionParser类的用法,分享给大家供大家参考. 具体代码如下:     from opt ...

  2. php解析命令行参数选项,PHP 命令行参数解析工具类的示例代码

    PHP 命令行参数解析工具类的示例代码 /** * 命令行参数解析工具类 * @author guolinchao */ class CommandLine { // 临时记录短选项的选项值 priv ...

  3. java命令行参数args_Args4J (Java 命令行参数控制开源项目) 使用指南

    Args4J 使用指南 Args4J 是一个用来出来命令行的工具. 在实际的项目中用到命令行的并不是很常见,但当真正使用到时,特别是在程序启动时配置一下参数的时候就很有用了,如果参数很多的话,一个一个 ...

  4. shell中使用case以及shift处理命令行参数

    shell或bash使用case与shift处理多个命令行参数 1. shift命令 在bash中定义了9个位置变量,分别使用$1,$2,-$9,借助 shift 命令可以访问多于9个的命令行参数. ...

  5. Shell命令 getopts/getopt用法详解 命令行参数

    Shell命令行参数解析getopts/getopt用法详解 在Linux bash中,可以用以下三中方式解析命令行参数: 直接处理:使用$1.$2.$3- 进行解析 getopts:短选项的情况,例 ...

  6. python 命令行参数-Python3 命令行参数

    Python3 命令行参数 Python 提供了 getopt 模块来获取命令行参数. $ python test.py arg1 arg2 arg3 Python 中也可以所用 sys 的 sys. ...

  7. python菜鸟教程h-Python 命令行参数

    Python 命令行参数 Python 提供了 getopt 模块来获取命令行参数. $ python test.py arg1 arg2 arg3 Python 中也可以使用 sys 的 sys.a ...

  8. Python 命令行参数

    概述 Python 提供了 getopt 模块来获取命令行参数. $ python test.py arg1 arg2 arg3 Python 中也可以所用 sys 的 sys.argv 来获取命令行 ...

  9. python 命令行参数_Python 命令行参数介绍

    Python 提供了 getopt 模块来获取命令行参数. Python 中也可以所用 sys 的 sys.argv 来获取命令行参数: sys.argv 是命令行参数列表. len(sys.argv ...

  10. 在远程桌面连接中使用命令行参数

    在此版本的 Windows 中,可以从搜索框("运行"对话框或命令行)启动远程桌面连接,而不是从「开始」菜单启动它. 使用这些方法,您可以使用其他命令行参数控制远程桌面连接的外观和 ...

最新文章

  1. 五个值得尝试的前端开发工具
  2. Windows 下用VS2012(Visual Studio 2012)编译librtmp
  3. 没有工厂模式(工厂模式2)
  4. 牛客小白月赛3 I 排名【结构体排序/较复杂/细节】
  5. 清除zencart分类页多页后面的disp_order sort字符串的方法
  6. 成功解决微信浏览器实现自动下载功能
  7. GEE、USGS、地理空间数据云上下载武汉地区的影像数据
  8. 故障诊断仪采集发动机EMS故障的报文与故障码记录
  9. JAVA基础-面型对象测试题
  10. 北航计算机学院考研复试,北航计算机学院考研复试-北京航空航天大学计算机学院2015年考研复试方法...
  11. IDEA必备插件大全
  12. matlab波形叠加,matlab程序两列波相向传播叠加波形图和动画.doc
  13. BD 之 逻辑题 赛马
  14. mysql 从从(主主)复制(故障转移)
  15. 【新手上路常见问答】关于物联网传输协议MQTT
  16. 世界排名第一的免费开源WMS仓储物流管理系统介绍
  17. 世界最具影响力的100个品牌
  18. ROS 添加自定义.msg文件生成的.h文件
  19. Legacy与UEFI
  20. Phonics 自然拼读法 g, o, u, l, f, b Teacher:Lamb

热门文章

  1. 13 . 外部中断实验
  2. 【我的C/C++语言学习进阶之旅】NDK开发之Native层使用fopen打开Android设备上的文件
  3. TensorFlow学习【1】--TensorFlow下载安装
  4. JAVA 的成员变量和局部变量
  5. # 第一次面试问题详解
  6. 胡灵 c语言,C语言门真相
  7. Tek DPO2024B示波器和电流探头A622的使用
  8. matlab 双曲线拟合,利用MATLAB进行logistic曲线拟合
  9. 标签thead与th的区别
  10. 记一次学习爬取豆瓣数据于Excel表的爬虫