一、接收固定长度的参数

[root@svn shell_example]# cat params.sh

#!/bin/bash

#传参测试脚本

echo "My name is `basename $0` -I was called as $0"

echo "My first parameter is : $1"

echo "My second parameter is : $2"

空参数执行

[root@svn shell_example]# sh params.sh

My name is params.sh -I was called as params.sh

My first parameter is :

My second parameter is :

传递2个参数执行

[root@svn shell_example]# sh params.sh one two

My name is params.sh -I was called as params.sh

My first parameter is : one

My second parameter is : two

二、那如果还有参数怎么办呢?还要一个个加上来吗?答案是否定的

以下用法应该不陌生,就是直接执行脚本本身,没有附带任何参数,那么脚本讲抛出帮助信息.即怎么使用此脚本.见红字部分

[root@svn shell_example]# sh params_v2.sh

My name is params_v2.sh -I was called as params_v2.sh

I was called with 0 parameters.

Usage: params_v2.sh first second

You provided 0 parameters,but 2 are required.

代码如下

[root@svn shell_example]# cat params_v2.sh

#!/bin/bash

# 这是个测试脚本传参的测试例子

echo "My name is `basename $0` -I was called as $0"

echo "I was called with $# parameters."

if [ "$#" -eq "2" ];then

echo "My first parameter is $1"

echo "My second parameter is $2"

else

echo "Usage: `basename $0` first second"

echo "You provided $# parameters,but 2 are required."

fi

详细的执行过程如下

不传参数执行

[root@svn shell_example]# sh params_v2.sh

My name is params_v2.sh -I was called as params_v2.sh

I was called with 0 parameters.

Usage: params_v2.sh first second

You provided 0 parameters,but 2 are required.

传递3个参数执行

[root@svn shell_example]# sh params_v2.sh one two three

My name is params_v2.sh -I was called as params_v2.sh

I was called with 3 parameters.

Usage: params_v2.sh first second

You provided 3 parameters,but 2 are required.

传递2个参数执行

[root@svn shell_example]# sh params_v2.sh one two

My name is params_v2.sh -I was called as params_v2.sh

I was called with 2 parameters.

My first parameter is one

My second parameter is two

问题来了,要是后期还要加参数怎么办呢?或者我也不确定到底会传几个参数.

解决方法如下,详细执行结果如下

[root@svn shell_example]# cat manyparams.sh

#!/bin/bash

#这是个测试脚本传N个参数的例子

echo "我的名字是 `basename $0` - 我是调用自 $0"

echo "我有 $# 参数"

count=1

while [ "$#" -ge "1" ];do

echo "参数序号为 $count 是 $1"

let count=count+1

shift

done

一个参数执行

[root@svn shell_example]# sh manyparams.sh one

我的名字是 manyparams.sh - 我是调用自 manyparams.sh

我有 1 参数

参数序号为 1 是 one

5个参数执行

[root@svn shell_example]# sh manyparams.sh one two three four five

我的名字是 manyparams.sh - 我是调用自 manyparams.sh

我有 5 参数

参数序号为 1 是 one

参数序号为 2 是 two

参数序号为 3 是 three

参数序号为 4 是 four

参数序号为 5 是 five

sh执行文件 参数传递_Shell脚本传参数方法总结相关推荐

  1. sh执行文件 参数传递_sh 脚本执行sql文件传参数

    一.前言 今天做数据删除,用的命令行输入参数,并且调用执行的sql文件,我采用了sed命令,进行替换. sh脚本如下 #! /bin/sh echo "Please enter the ba ...

  2. sh执行文件 参数传递_详解shell中脚本参数传递的两种方式

    方式一:$0,$1,$2.. 采用$0,$1,$2..等方式获取脚本命令行传入的参数,值得注意的是,$0获取到的是脚本路径以及脚本名,后面按顺序获取参数,当参数超过10个时(包括10个),需要使用${ ...

  3. 关于Actionscript 3中给Flash传参数方法(一)

    关于Actionscript 3中给Flash传参数方法(一) 今天在测试一个为Audi做Flash AD的时候,发现Audi提供的clicktag是Actionscript 2的代码,在Action ...

  4. svn怎么执行清理命令_SHELL脚本定期删除日志文件(日志定期清理)

    假设我们的应用每天会产生一个日志文件,但我们并没有对日志文件做任何归档处理,久而久之日积月累,就会将磁盘空间占满,从而影响系统的正常运行. 分析磁盘空间占用情况 #当前磁盘空间占用情况 df -h # ...

  5. linux 执行sh脚本传参数

    linux脚本根据动态参数判断 解决方法: sh  /data/test.sh  "123"  上面执行test.sh脚本时就传递了一个参数123 其中$1指的是执行sh脚本时所传 ...

  6. java怎么跟qtp脚本传参数_QTP多个Action之间传递参数的方法详解

    脚本的朋友们都会碰到多个Action之间传递参数的问题,想当年我也是研究了好久才成功的,网上虽然有很多文章都在讲这个问题,但是大多都是雷同的抄来抄去不能解决实际问题,也有可能是我太笨了吧.下面我们来详 ...

  7. .sh执行文件sed命令出错 bad flag in substitute command: ‘U‘ Mac终端

    我的问题出在sed中的文件我写成了变量,缝合别人文件时变量因为同名被修改了,所以找不到文件报了这个错,好坑,找了半天.

  8. iis、apache与nginx禁止目录执行asp、php脚本的实现方法

    为了网站安全,很多图片上传目录等不需要执行脚本的目录我们可以通过下面的方法禁止执行脚本. 一般iis中比较简单,iis6如下图所示即可: 很多购买虚拟主机空间的用户,如果空间商提供了在线管理程序,也可 ...

  9. QTP11.0部分脚本代码参数方法详细说明(逐步整理,持续更新中...)

    **1.打开文件或程序** SystemUtil.run "file" - 用于打开一个文件或程序  - file表示文件或程勋的完整路径及名称 eg: 打开QTP自带的小飞机(程 ...

最新文章

  1. OpenResty上各种测试用例实操(1)
  2. 研究生的早期科研之路
  3. 添加拦截器解析用户信息
  4. Linux下core文件调试方法收藏
  5. Linux SSH远程链接 短时间内断开
  6. bzoj 2429: [HAOI2006]聪明的猴子(最小生成树)
  7. ubuntu 安装php 5.4.9 编译安装
  8. 【java】打印一个对象即打印出该对象toString()返回值
  9. 基于 cm-11 源码编译模拟器
  10. [数论]莫比乌斯反演入门
  11. 深入浅出统计学 笔记 总结 学习心得
  12. 微信转账被拉黑 遇到渣人该怎么追回损失?
  13. 如何判断一对一、一对多和多对多的关系
  14. 正方形里面两个扇形相交部分_正方形里面为两个半圆相交,求相交部分阴影面积...
  15. 【新手必看】渗透测试学习书籍推荐
  16. H3C 重置cons 密码,清空配置
  17. CDS (W2) -- Features, Data, Text Processing
  18. IOS之数据持久化二(归档与反归档)
  19. 聊一聊龙蜥硬件兼容性 SIG 那些事儿 | 龙蜥 SIG
  20. Flutter elevation属性名称的含义

热门文章

  1. pjsip php,VoIP应用在Ubuntu 14.04下编译FFmpeg libX264及PJSIP
  2. JAVA基础驿站,Java基础:内存模型
  3. Yet Another Broken Keyboard
  4. linux 后台计算,科学网-如何在Linux中做批处理和后台计算-张彦的博文
  5. oracle rman恢复表空间,Oracle数据库RMAN恢复之表空间和数据块介质的恢复
  6. python每行输出30个字_python_30期【for循环】
  7. long long c语言_带你打开C语言的大门之C语言的变量
  8. 深度学习之卷积神经网络(2)卷积神经网络结构
  9. mongodb单表最大记录数_SpringBoot+Cloud全家桶微服务实战项目之文档型数据库MongoDB四...
  10. P1458 顺序的分数 Ordered Fractions(有技巧的枚举)+C++类封装=精简代码