<返回更多

一文掌握shell脚本中shift的用法及功能

2019-11-08    
加入收藏

概述

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


一、shift介绍

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

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


二、实验

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

#!/bin/bash
while [ $# != 0 ];do
echo "第一个参数为:$1,参数个数为:$#"
shift
done
一文掌握shell脚本中shift的用法及功能

 

输出结果:

./run.sh a b c d e f
一文掌握shell脚本中shift的用法及功能

 

从上可知 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
一文掌握shell脚本中shift的用法及功能

 

输出结果:

./shift.sh a b c d e f
一文掌握shell脚本中shift的用法及功能
声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>