概述

今天主要介绍下shell脚本中shift的一些用法,这个命令还是相对比较少见的。

一、shift介绍

shift命令用于对参数的移动(左移),通常用于在不知道传入参数个数的情况下依次遍历每个参数然后进行相应处理(常见于linux中各种程序的启动脚本)。

简而言之,shift命令表示参数向左偏移,后面可跟数字(数字大小在参数个数范围内)

二、实验

1、依次读取输入的参数并打印参数个数:

#!/bin/bash

while [ $# != 0 ];do

echo "第一个参数为:$1,参数个数为:$#"

shift

done

输出结果:

./run.sh a b c d e f

从上可知 shift(shift 1) 命令每执行一次,变量的个数($#)减一

(之前的$1变量被销毁,之后的$2就变成了$1),而变量值提前一位。

同理,shift n后,前n位参数都会被销毁。

2、测试shift n

#!/bin/bash

echo "参数个数为:$#,其中:"

for i in $(seq 1 $#)

do

eval j=$$i

echo "第$i个参数($"$i"):$j"

done

shift 3

echo "执行shift 3操作后:"

echo "参数个数为:$#,其中:"

for i in $(seq 1 $#)

do

#通过eval把i变量的值($i)作为变量j的名字

eval j=$$i

echo "第$i个参数($"$i"):$j"

done

输出结果:

./shift.sh a b c d e f

Linux中shift命令的用法,一文掌握shell脚本中shift的用法及功能相关推荐

  1. 扫盲 Linux&UNIX 命令行——从“电传打字机”聊到“shell 脚本编程”

    扫盲 Linux&UNIX 命令行--从"电传打字机"聊到"shell 脚本编程" 本文目标读者 虽然本文的标题号称是[扫盲],但俺相信:即使是一些 P ...

  2. shell shift与{}_一文掌握shell脚本中shift的用法及功能

    概述 今天主要介绍下shell脚本中shift的一些用法,这个命令还是相对比较少见的. 一.shift介绍 shift命令用于对参数的移动(左移),通常用于在不知道传入参数个数的情况下依次遍历每个参数 ...

  3. Shell脚本中$0、$?、$!、$$、$*、$#、$@等的意义以及linux命令执行返回值代表意义

    Shell脚本中$0.$?.$!.$$.$*.$#.$@等的意义以及linux命令执行返回值意义 (1) Shell脚本中$0.$?.$!.$$.$*.$#.$@等的意义说明 1.1.简要说明 ps: ...

  4. shell脚本中的变量

    shell脚本中的变量 1 变量的定义 2 shell脚本中变量的定义方法 2.1 环境级别 2.2 用户级别 2.3 系统级别 3 变量名称 4 变量的转译 4.1 转译 4.2 声明 4.3 变量 ...

  5. 【Shell系列】之shell脚本中常用句法

    环境:shell脚本 1.怎么打印grep后的变量 方法1 gp=`grep smthg <filename>` echo -n "$gp" 参考网址:https:// ...

  6. 如何在Shell脚本中使用if-else?

    Moving ahead from our previous tutorial on arrays in shell scripts, let's understand how we can use ...

  7. 69:shell脚本介绍 | shell脚本结构 | 执行data命令用法 | shell脚本中变量

    2019独角兽企业重金招聘Python工程师标准>>> 1.shell脚本介绍: shell是一种脚本语言和传统的开发语言相比,会比较简单: shell有自己语法,可以支持逻辑判断. ...

  8. linux 脚本$字符,一文看懂shell脚本中$0 $1 $# $@ $* $? $$ 的各种符号意义

    概述 shell中有两类字符,一类是普通字符,在Shell中除了本身的字面意思外没有其他特殊意义,即普通纯文本:另一类即元字符,是Shell的保留字符,在Shell中有着特殊的含义. 今天主要介绍一下 ...

  9. 7月11日任务 shell介绍、shell结构和执行 、date命令用法、shell脚本中的变量

    2019独角兽企业重金招聘Python工程师标准>>> 20.1 Shell脚本介绍 • shell是一种脚本语言  aming_linux  blog.lishiming.net ...

最新文章

  1. 翡润年华-毛货展示003
  2. 一次误报引发的DNS检测方案的思考:DNS隧道检测平民解决方案
  3. python太慢了-python 读取大文件越来越慢
  4. 九度题库(所有题目整理,适合计算机考研和面试的人用)
  5. 计算机进阶操作,新手进阶Win7系统操作使用手册
  6. 迁移.NET 1.0 应用到FX 2.0 –.NET评测网的工具箱
  7. java图形界面_Java自学-图形界面 面板
  8. 程序员救赎之路:从“996”到微软“4天6小时工作制”
  9. 设计模式:抽象工厂模式(C++)【工厂方法升级】
  10. S1:动态方法调用:call apply
  11. element提交图片限制一张_element-ui上传图片限制图片比例
  12. 51nod 1423 最大二“货” 单调栈
  13. [导入]QZONE跳转FLASH地址生成工具
  14. Google两步验证的工作原理
  15. 简要介绍随机森林原理
  16. 浏览器的历史浏览记录_如何在任何浏览器中清除历史记录
  17. 正态分布是离散分布还是连续分布_内容范围:正态分布,泊松分布,多项分布,二项分布,伯努利分布...
  18. Edison 物联网:使用MRAA发挥平台输入输出能力
  19. 华科计算机学院专业课,华中科技大学计算机专业课程表.xls
  20. Linux服务器之间使用scp免密传输文件

热门文章

  1. 类似来杯奶茶app软件
  2. 装备合成 三分,动态规划
  3. 从装备合成谈树状结构的应用
  4. sublime text3 字体大小的设置方法
  5. java梦幻机甲_西游梦幻记机甲战斗游戏下载-西游梦幻记测试服下载v1.0.4-乐游网安卓下载...
  6. vim 常用 NERDTree 快捷键
  7. Java面试中常见的高并发解决方案
  8. tar解压到制定目录
  9. [wp7游戏]wp7 [动作]+[冒险]系列游戏~~集合~~
  10. java实现的人民币大小写转换