当前位置: 首页 > news >正文

Linux shift 命令使用详解

简介

Bash 脚本中,shift 命令用于将命令行参数向左移动,有效地丢弃第一个参数并将其他参数向下移动。

基础语法

shift [N]

N(可选)→ 要移动的位置数。默认值为 1

示例用法

移动参数
#!/bin/bash
echo "Before shift: $1 $2 $3"

shift  # Shift once

echo "After shift: $1 $2 $3"

运行脚本示例:

./script.sh a b c d

输出如下:

Before shift: a b c
After shift: b c d
  • shift 删除 $1 (a)

  • $2 变成 $1, $3 变成 $2 等等。

在循环中使用 shift
#!/bin/bash
while [[ $# -gt 0 ]]; do
    echo "Argument: $1"
    shift
done

运行:

./script.sh one two three

输出:

Argument: one
Argument: two
Argument: three
将 shift 与 N 结合使用
#!/bin/bash
echo "Before shift: $1 $2 $3 $4"

shift 2  # Shift by 2 places

echo "After shift: $1 $2"

运行:

./script.sh a b c d

输出:

Before shift: a b c d
After shift: c d
  • $1$2 都被移除
检查参数是否有剩余
#!/bin/bash
while [[ $# -gt 0 ]]; do
    echo "Processing: $1"
    shift
done
echo "No more arguments."
  • $#:剩余参数的数量

  • $# 达到0时,循环结束

循环遍历成对的参数
#!/bin/bash
while [[ $# -gt 1 ]]; do
    echo "Key: $1, Value: $2"
    shift 2
done

运行:

./script.sh --name Alice --age 30 --city Parisss

输出:

Key: --name, Value: Alice
Key: --age, Value: 30
Key: --city, Value: Paris
http://www.dtcms.com/a/92892.html

相关文章:

  • C++中使用ShellExecute函数调用其他窗口程序时,参数设置为隐藏,后续能通过发消息给这个被调用程序显示,能显示出来窗口吗
  • 汽车加气站操作工证书报考条件是什么?
  • 【计算机操作系统】第一章操作系统引论
  • 优选算法系列(4.前缀和 _下) k
  • Deepseek API+Python 测试用例一键生成与导出 V1.0.4 (接口文档生成接口测试用例保姆级教程)
  • OkHttp 的证书设置
  • QOpenGLWidget视频画面上绘制矩形框
  • Redis简单介绍和安装
  • 版本控制工具
  • 树莓派超全系列文档--(8)RaspberryOS实用程序
  • 【C#.NET】VS2022创建Web API项目
  • Spark大数据分析与实战笔记(第四章 Spark SQL结构化数据文件处理-02)
  • D3802ACF:高精度 PSR LED 恒流驱动电路详解
  • L2-3 龙龙送外卖(天梯赛)
  • mysql5.7无法启动报错处理无日志
  • 吴恩达机器学习笔记复盘(十二)逻辑回归的梯度下降和拟合问题
  • 《基于python游戏设计与实现》开题报告
  • 如何用JavaScript验证身份证号码?
  • vue 使用v-model实现父子组件传值——子父组件同步更新
  • 数据库基础知识点(系列三)
  • 创新NDT解决方案:XARION激光超声系统助力航空航天材料的高效监测
  • xml文件
  • Codeforces Round 1013 (Div. 3)(A-F)
  • 程序化广告行业(36/89):广告投放全流程及活动设置详解
  • MinGW与使用VScode写C语言适配
  • UI前端与数字孪生:打造智慧城市的双引擎
  • Fegin 400错误分析
  • idea 没有 add framework support(添加框架支持)选项
  • [Lc4_dfs] 括号生成 | 组合 | 目标和
  • docker创建registry镜像仓库2.8版本