Shell编程中Shift的用法
位置参数可以用shift
命令左移。比如shift 3
表示原来的$4
现在变成$1
,原来的$5
现在变成$2
等等,原来的$1
、$2
、$3
丢弃,$0
不移动。不带参数的shift
命令相当于shift 1
。
非常有用的 Unix 命令:shift。我们知道,对于位置变量或命令行参数,其个数必须是确定的,或者当 Shell 程序不知道其个数时,可以把所有参数一起赋值给变量$*。若用户要求 Shell 在不知道位置变量个数的情况下,还能逐个的把参数一一处理,也就是在 $1 后为 $2,在 $2 后面为 $3 等。在 shift 命令执行前变量 $1 的值在 shift 命令执行后就不可用了。
示例如下:
#测试 shift 命令(x_shift.sh)
until [ $# -eq 0 ]
do
echo "第一个参数为: $1 参数个数为: $#"
shift
done
执行以上程序x_shift.sh:
$./x_shift.sh 1 2 3 4
结果显示如下:
第一个参数为: 1 参数个数为: 4
第一个参数为: 2 参数个数为: 3
第一个参数为: 3 参数个数为: 2
第一个参数为: 4 参数个数为: 1
从上可知 shift 命令每执行一次,变量的个数($#)减一,而变量值提前一位,下面代码用 until 和 shift 命令计算所有命令行参数的和。
#shift 上档命令的应用(x_shift2.sh)
if [ $# -eq 0 ]
then
echo "Usage:x_shift2.sh 参数"
exit 1
fi
sum=0
until [ $# -eq 0 ]
do
sum=`expr $sum + $1`
shift
done
echo "sum is: $sum"
执行上述程序:
$x_shift2.sh 10 20 15
其显示结果为:
45
Shift 命令还有另外一个重要用途, Bsh 定义了9个位置变量,从 $1 到 $9,这并不意味着用户在命令行只能使用9个参数,借助 shift 命令可以访问多于9个的参数。
Shift 命令一次移动参数的个数由其所带的参数指定。例如当 shell 程序处理完前九个命令行参数后,可以使用 shift 9 命令把 $10 移到 $1。
转载于:https://blog.51cto.com/silian20122/1784261
Shell编程中Shift的用法相关推荐
- Shell编程中Shift的用法(转)
位置参数可以用shift命令左移.比如shift 3表示原来的$4现在变成$1,原来的$5现在变成$2等等,原来的$1.$2.$3丢弃,$0不移动.不带参数的shift命令相当于shift 1. 非常 ...
- shell shift与{}_一文掌握shell脚本中shift的用法及功能
概述 今天主要介绍下shell脚本中shift的一些用法,这个命令还是相对比较少见的. 一.shift介绍 shift命令用于对参数的移动(左移),通常用于在不知道传入参数个数的情况下依次遍历每个参数 ...
- Linux中shift命令的用法,一文掌握shell脚本中shift的用法及功能
概述 今天主要介绍下shell脚本中shift的一些用法,这个命令还是相对比较少见的. 一.shift介绍 shift命令用于对参数的移动(左移),通常用于在不知道传入参数个数的情况下依次遍历每个参数 ...
- Linux shell脚本中shift的用法说明
原文:https://blog.csdn.net/zhu_xun/article/details/24796235 shift命令用于对参数的移动(左移),通常用于在不知道传入参数个数的情况下依次遍历 ...
- shell编程中expr的用法
http://blogold.chinaunix.net/u2/80710/showart_1933974.html 在网上找了好长时间,才找到这么篇好文章,给大家分享一下. expr 命令 用途 求 ...
- shell编程中的select用法
select 语句 select表达式是bash的一种扩展应用,擅长于交互式场合.用户可以从一组不同的值中进行选择: select var in ... ; dobreak; done .... no ...
- shell编程中if []的用法注意
2019独角兽企业重金招聘Python工程师标准>>> 1.if后要有空格 2.[] 中括号的开头和结尾要有空格! 3. [ $1-eq"root" ]中括号中的 ...
- 掌握shell编程中数组的常见用法及示例
From: http://www.embeddedlinux.org.cn/html/jishuzixun/201211/19-2386.html 给大家分享下数组的用法小例子,希望能给大家一点帮助. ...
- 轻松掌握shell编程中数组的常见用法及示例
缘起:在老男孩进行linux培训shell编程教学中,发现不少水平不错的网友及同学对数组仍然很迷糊,下面就给大家分享下数组的用法小例子,希望能给大家一点帮助.其实SHELL的数组很简单,好用.我们学习 ...
最新文章
- 注册表----修改Win7登录界面
- java的异常抛出throws和throw的简单使用
- kafka springboot配置_springboot 将日志导入kafka配置文件 logbackspring.xml(多环境)
- arch Linux 添加引导,ArchLinux 添加开机启动脚本, 亲测
- ps -ef grep java解释,ps -ef | grep java(示例代码)
- img 隐藏_仙女山美食美景色,那些隐藏在深处角色味香
- NTP原理及配置使用
- Andorid连接USB打印机
- html导航折叠与展开,html展开收起
- Flutter 修改自带Switch,实现轻量自定义Switch,使用screen_utils适配大屏
- 《菜鸟教程》丨2D骨骼动画工具DragonBones的使用教程
- 百度地图如何在html中显示图片,在网页中插入百度地图(实例)
- SDUST 第四次实验
- c语言编程TLC2543AD采集,TLC2543单片机程序 带Proteus仿真 电路原理图 AD转换实验
- 前端安全之XSS攻击详解
- 同步通讯和异步通讯的区别
- 【Aegisub相关】Lua程序设计 第4版(中文翻译)
- 苹果5壁纸_元气壁纸软件-元气壁纸安卓版下载v1.0.2
- vb中MSHFlexgrid控件小总结
- 用Python编写第一个小游戏