当前位置:首页 > 技术文章 > 正文内容

详解Linux shell脚本中shift的用法及实验说明

douba317小时前技术文章3

概述

今天主要介绍下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

后面会分享更多devops和DBA方面内容,感兴趣的朋友可以关注下~

相关文章

本地部署宝塔平替轻量级linux面板mdserver-web并实现远程访问

前言在服务器管理的世界里,宝塔面板一直是很多人的首选。它以其简洁的操作界面和丰富的功能赢得了无数用户的青睐。然而,随着时间的推移,一些用户开始对宝塔的一些限制感到不满,比如强制绑定手机号、广告频繁等问...

怎么查看 Linux 系统相关的系统信息,看这个就够了

#头条创作挑战赛#大家好,这里是小杨学习分享,今天给大家分享Linux 系统相关的系统信息要如何查看,有帮助的记得点赞收藏关注哦~命令 :作用uname-a :查看内核/OS/CPU信息uname-r...

为解决卡顿,Linux禁用所有AMD处理器fTPM上的随机数生成器

IT之家 8 月 8 日消息,最近,AMD 的 fTPM 随机数生成器(RNG)出现了一个卡顿问题,最初影响了 Windows 用户,但后来也影响到了 Linux。Linux 之父 Linus Tor...

如何在 Linux 中将 FTP 用户限制为目录

1. 概述在本文中,将配置 vsftpd 以限制用户在通过 FTP 建立连接时浏览父目录。将通过创建 FTP 用户并修改 vsftpd.conf 文件中的默认配置来实现这一点。2. 设置 FTP 用户...

Linux常见的网络客户端工具ping/lftp/ftp/lftpget/wget应用示例

以下是Linux中常用的网络工具的带参数和不带参数的功能及详细示例:ping:不带参数功能:使用ping命令可以测试主机之间的连通性。示例:ping google.com,测试与google.com的...

Steam Deck支持安装Windows 11了:新版固件支持fTPM

近期发售的 Steam Deck 虽然预装的是基于 Linux 的 Steam OS 系统,但是 Valve 一直打算让这款游戏掌机支持 Windows 系统。现在该公司消除安装 Windows 11...