如何给shell脚本传入参数小结

Shell脚本接收位置参数,变量的定义和运算、流程控制语句演示 本文系统介绍了Shell脚本编程中的变量使用和流程控制语句。主要内容包括: 变量部分: 变量获取方式($符号、read命令) 变量类型(局部/全局变量、字符串/整数/数组变量) 变量运算方法($(())、let、expr、bc等) 字符串处理技巧(截取、替换、删除等) 流程控制部分: if语句(单分支/多分支) for循环(常用格式、九九乘法表示例) while循环 case语句(分数等级判断示例) 文章通过大量实例代码演示了Shell脚本编程的核心语法要素,适合作为Shell编程的入门参考。 阅读详情

大家都知道普通的bash命令后边可以跟任意的参数,那我们自己编写的脚本是否也支持传递参数呢?答案当然是肯定的

执行“vim test.sh”创建一个新的shell脚本。脚本test.sh的内容如下:

#!/bin/sh

name=$1

echo "the ${name} are great man!"

给新创建的test.sh的脚本赋可执行权限,命令为“chmod +x test.sh”

执行'./test.sh "xiao wang" '命令,可以看到自己编写脚本的结果“the xiao wang are great man!”

"name=$1"中$1为系统提供的位置参数,$0代表程序的名称(./test.sh),[$1 $2...]从1开始为传递的参数。linux系统除了提供位置参数还提供内置参数,所有内置参数如下: 

$0 ----当前脚本文件名

$n ----传递给脚本或函数的参数,n是一个数字,表示第几个参数,$1表示第一个参数,$2表示第二个参数 ...

$# ----传递给脚本或函数的参数个数

$* ----传递给脚本或函数的所有参数,当它被双引号(" ")包含时,"$*" 会将所有的参数作为一个整体,以"$1 $2 ... $n"的形式输出所有参数

$@ ----传递给脚本或函数的所有参数,当它被双引号(" ")包含时,与$*稍有不同,"$@" 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数

$* 和$@不被双引号(" ")包含时,都以"$1" "$2" … "$n" 的形式输出所有参数

下面写个小程序实践一下$* 和$@

$? ----上一个命令的退出状态,或函数的返回值,如果正常退出则返回0,反之为非0值

$$ ----当前shell进程pid,对于shell脚本,就是这些脚本所在的进程ID

$! ----上一个命令的pid

新建test.sh chmod +x test.sh 执行./test.sh "a" "b" "c" "d",观察打印结果
#!/bin/bash
echo "\$*=" $*
echo "\$@=" $@

echo "print each param from \$*" 
for var in $*
do
    echo $var
done

echo "print each param from \$@"
for var in $@
do
    echo $var
done

echo "print each param from \"\$*\""
for var in "$*"
do
    echo $var
done

echo "print each param from \"\$@\""
for var in "$@"
do
    echo $var

done

打印结果:
$*= a b c d
$@= a b c d
print each param from $*
a
b
c
d
print each param from $@
a
b
c
d
print each param from "$*"
a b c d
print each param from "$@"
a
b
c
d
Shell脚本基础参数和写法,条件测试语句用法 本文介绍了Linux中Shell脚本的基本配置与运行方法,以及条件测试语句的使用。主要内容包括:1)通过touch或vim创建.sh脚本文件,使用#!/bin/bash声明解释器;2)三种运行方式(bash、可执行权限、source)及路径指定;3)条件测试语句格式与参数,包括文件测试(-e/-f等)、字符串测试(-n/-z等)、整数比较(-eq/-gt等)和逻辑运算(&&/||/!);4)测试结果通过$?获取,0表示成立。文章详细说明了各种测试操作符的功能和使用注意事项,并提供了实际命令示 阅读详情

相关推荐

Shell脚本学习指南(六)——输入/输出、文件与命令执行

本篇博客将完成介绍Shell语言。首先讨论的是文件:如何以不同的方式处理输入/输出和产生文件名。接着是命令替换,也就是让你使用一个命令的输出作为命令行的参数。然后,我们继续将重点放在命令行上,讨论Shell提供的各类引用。最后,则是深入讨论命令执行顺序,并针对内建于Shell里的命令作介绍。前面我们介绍过printf命令,下面我们将完整地介绍它。printf第一部分为描述符规格的字符串,它的最佳提供方式是放在引号内的字符串常数。第二部分为参数列表,例如字符串或变量值的列表,该列表需与格式规格相对应。

m0_56145255的博客 7654

Linux shell 脚本处理用户输入(命令行选项参数、用户输入)

简述了在bash shell 脚本中,如何使用命令行参数,如何设定命令选项及参数。从文件中读取的方法。

weixin_43276033的博客 3万+

SerDes电路的PCB仿真设计规则及策略

SerDes的PCB设计中,重点工作是使用3D 电磁 (EM) 场求解器,进行过孔结构优化,包括 BGA的扇入和扇出区域以及布线的过孔区域,并且,利用连接器供应商提供加密的 3D 模型,进行连接器和 PCB 的级联仿真,最终获取系统级的通道性能参数,如插入损耗、回波损耗、串扰和模式转换、阻抗曲线等,如果发现任何缺陷,再进行进一步优化,这一过程中,推荐进行拆分仿真,以提高设计效率。

一只豌豆象的博客 2139

shell脚本编程笔记(五)—— 输入处理

一、 处理用户输入 1. 命令行参数shell脚本传递数据最基本的方法是使用命令行参数,在脚本运行时指定参数,例如: ./add.sh 10 30 ./output.sh 'Hello World' #带空格的参数需加引号,单双引号均可 shell提供位置参数(一组特殊环境变量集合),分别用$1 $2..$9表示第一至第九个参数,10之后写法为${10}。 有两个比较特殊的参数$0和$#,$0表示执行的脚本名(含路径),$#表示参数的个数 如果只想获取脚本名不需要路径,可以使用base

Hehuyi_In的博客 6232

【转载】如何给shell脚本传入参数小结

原文:https://blog.csdn.net/beibei0921/article/details/45287855大家都知道普通的bash命令后边可以跟任意的参数,那我们自己编写的脚本是否也支持传递参数呢?答案当然是肯定的执行“vim test.sh”创建一个新的shell脚本脚本test.sh的内容如下:#!/bin/shname=$1echo "the ${name} are grea...

u011131874的专栏 952

详解shell脚本参数传递的两种或者是三种方式:命令方式和两个脚本之间传递参数的的全局变量方式

https://www.jb51.net/article/197540.htm

二进制模----细微行动改变影响世界 4744

Linux:如何给Shell脚本传入参数

大家都知道普通的bash命令后边可以跟任意的参数,那我们自己编写的脚本是否也支持传递参数呢?答案当然是肯定的 执行“vim test.sh”创建一个新的shell脚本脚本test.sh的内容如下: #!/bin/sh name=$1 echo “the ${name} are great man!” 给新创建的test.sh的脚本赋可执行权限,命令为“chmod +x test.sh” 执行’./test.sh “xiao wang” '命令,可以看到自己编写脚本的结果“the xiao wang are

u013250861的博客 1万+

Shell脚本中的参数处理进阶指南

Shell脚本是Unix/Linux系统管理的重要工具之一,它能够帮助系统管理员自动化日常任务。当编写Shell脚本时,能够有效地处理脚本参数是非常重要的,因为这使得脚本更加灵活并且可以根据不同的输入产生不同的行为。

2401_86544677的博客 947

Shell 命令和脚本程序

此文主要为了记录总结学习shell命令所熟知的知识点整理。

qq_37381423的博客 1043

shell脚本_脚本与用户交互以及if条件判断

掌握脚本与用户交互的基本技巧和条件判断的使用,能让我们在日常的自动化任务中更加得心应手,也为脚本的编写和优化提供了强大的支持。希望本篇内容能够帮助你更好地理解并应用 Bash 脚本中的常见操作,为你的自动化脚本开发提供更多思路和方法。

星海幻影的博客 1611

mysql怎么写shell脚本_一篇教会你写90%的shell脚本(入门小结)

shell脚本?在说什么是shell脚本之前,先说说什么是shellshell是外壳的意思,就是操作系统的外壳。我们可以通过shell命令来操作和控制操作系统,比如Linux中的Shell命令就包括ls、cd、pwd等等。总结来说,Shell是一个命令解释器,它通过接受用户输入的Shell命令来启动、暂停、停止程序的运行或对计算机进行控制。shell 是一个应用程序,它连接了用户和 Linux ...

weixin_28804631的博客 794

shell脚本编程【一】

shell脚本编程【一】

qq_45740503的博客 1637

Shell脚本入门知识点总结

文章目录一个shell脚本的示例变量自定义变量定义和使用变量只读变量删除变量定义和使用数组特殊变量接收命令行参数的位置变量其它特殊变量命令替换: 将命令的输出结果赋值给变量Shell运算符算数运算关系运算符数值比较字符串比较文件比较逻辑运算流程控制判断语句if语句case语句循环语句while语句for语句 Shell是一个面向字符串编程的脚本语言.有两个很好的入门shell的网站:Shell 教...

ncepu_Chen的博客 2220

[1-007-24].第32节:shell变量 - 内置变量 - 脚本相关

2.直接输出所有输入参数, 与循环方式输出所有输入参数(使用双引号包含。小结常用的特殊符号变量如下。

F-T-er 1069

Bash Shell脚本学习小结

今天需要写一个Shell脚本。很简单,判断一个日志文件是否大大于2G,如果大于2G则删除。久了没有写bash,竟然一点都想不起来写了。于是复习了一下,下面对今天的学习做个小结: 1.字符截断: 如果是一般路径的字符截断可以用basename和dirname这两个工具: basename可以从一个文件路径中截一个文件名 例如: $ basename /home/file.tar

真理部 1530

shell script编程小结--附带实例

shell script编程小结前言shell作为编程中不可或缺的一部分,平日里,我们经常会在shell中输入一些命令。有时候也需要完成一些复杂的操作,重复的输入多条相同的命令,过于费时和无趣。所以掌握shell script就显得非常有必要了,可以让你用编程的方式调用繁多的命令行工具。最近,正好碰上一个一直拖着的需求,便抄起了shell解决掉了,写了人生中第一段shell script代码。需求如

WilsonLiu's Blog 3746

RT-Thread MSH Shell 增加传入参数长度

RT-Thread MSH Shell 增加传入参数长度

坚韧与专注 732

手把手教你学基于 Linux 的 NPU 固件开发-第 10 讲:可靠性设计(RAS)——让系统坚如磐石错误检测、纠正与上报机制(ECC、Parity)

组件推荐保护机制备注HBM/DDRScrubbing必须开启,定期巡检片上 SRAMECC(权重/激活值),Parity(指令)权衡面积与可靠性计算单元ABFT或DMR(关键路径)防止计算逻辑错误片上网络CRC重传保证数据传输完整性系统软件AER 上报CE 监控自动恢复闭环管理,杜绝 SDC运维策略预测性维护Checkpoint变被动为主动核心心法(信任硬件,但必须验证。在纳米尺度下,错误是必然发生的物理现象。

MHD0815的博客 62

数据结构-python语言描述张光河版大学课程配套资源全集合_包含PPT课件课后习题答案课时安排大纲课本配套源代码教学教案及实验安排等完整教学材料_旨在为学习数据结构.zip

数据结构-python语言描述张光河版大学课程配套资源全集合_包含PPT课件课后习题答案课时安排大纲课本配套源代码教学教案及实验安排等完整教学材料_旨在为学习数据结构.zip

上一篇: pymongo的使用总结
下一篇: linux文件权限命令小结
AlexYBB
博客等级 码龄17年 10粉丝 37原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值