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

Linux Shell脚本参数传递与条件判断的方法

参考链接:Shell 教程 | 菜鸟教程

参数传递

Shell脚本中参数用$来表示,如

$1 -- 第一个参数

$2 -- 第二个参数

...,以此类推,比如test.sh arg1 arg2命令,那么$1就是arg1,$2就是arg2

$# -- 参数个数

变量赋值

直接用语句

arg=value

就可以设置变量和变量的值,arg为变量名,value为变量的值,变量引用时用$arg,注意操作符“=”旁边没有空格,也可以

arg=$1

表示$arg等于第一个参数$1

条件判断

条件判断用if--fi语句,if表示条件判断,fi表示条件判断程序的结束,比如

if [ $# -ge 1 ] && [ $1 -eq 0 ]; then

echo "arg number: $#"

echo "arg1: $1"

fi

[ ]之间为判断语句,逻辑关系,需要注意的是,[, ], 以及变量、运算符旁边要留出空格,不然会被认定为shell脚本语法出错

-eq -- 等于

-ne -- 不等于

-gt -- 大于

-ge -- 大于等于

-lt -- 小于

-le -- 小于等于

可以在逻辑语句之间用!, -o, -a来表示语句之间的运算,如

[ ! $arg -eq 0 ] -- $arg不等于0

[ $arg1 -eq 0 -a $arg2 -eq 2 ] -- $arg1等于0并且$arg2等于2,等等

[ ]之间的逻辑运算

&& -- 逻辑与

|| -- 逻辑或

比如[ condition1 ] && [ condition2 ],作用效果应该与前面的-o,-a相同

http://www.jsqmd.com/news/1130693/

相关文章:

  • 新手必看:Cities: Skylines多人联机CSM常见问题与解决方案
  • 零代码AI智能体革命:如何用一句话创建企业级多模态AI服务
  • 实现mini-vue3
  • YOLOv12遥感目标检测:MGCM模块创新与应用
  • Redis 主从复制,哨兵,集群——(3)集群篇
  • 如何正确使用openEuler SBOM标准中的CONTAINS与DEPENDS_ON关系
  • 5个关键步骤解决Koodo Reader跨平台电子书阅读器的常见技术问题
  • 通义App:Qwen3大模型的终极交互载体与体验中枢
  • 如何解决WarpShare连接问题?新手必备的5个实用技巧
  • 终极Windows优化指南:三分钟让你的电脑焕然一新
  • Dify实战指南:一周精通LLM应用开发,从零构建AI工作流与RAG系统
  • IOIO开发常见问题解答:新手必知的15个实用技巧
  • Visual Studio 2008环境新特性
  • Flutter 鸿蒙环境搭建避坑实战:Windows 下把 SDK、HDC 和 HAP 构建一次跑通
  • Redis 主从复制,哨兵,集群——(1)主从复制篇
  • 揭秘HBCTool:逆向Hermes字节码的终极利器
  • 如何重构现有RAG系统:模块化多模态集成技术指南
  • Arnis:从现实坐标到Minecraft世界的创意桥梁
  • SARCLIP框架:多模态预训练提升SAR图像理解
  • 2026年AI增长之星Codex:从开发者工具到通用知识工具的转变之路
  • Steam ROM Manager:告别游戏库混乱,打造你的终极游戏收藏中心
  • 工业控制系统智能散热方案设计与实现
  • 如何在游戏机上安装B站客户端?wiliwili让你的Switch变身全能追番神器
  • 一键转换PDF、Word、Excel等数十种文档到Markdown:MarkItDown终极指南
  • DXVK 2.7.1:Linux游戏性能提升40%的终极Direct3D转Vulkan技术指南
  • LLVM 编译器学习笔记之三十六-- 指令调度Instruction scheduling
  • Wireshark实战:从CTF流量分析到网络安全排查核心技巧
  • Redis 主从复制,哨兵,集群——(2)哨兵篇
  • Windows上配置完整Linux开发环境(二):Linux发行版Anaconda安装与使用
  • ByteDance-Seed/PAR三大核心模型对比:3scale_400M vs 3scale_400M_pdb vs 3scale_by_ratio_60M