Shell脚本传参数方法总结

   这篇文章主要介绍了Shell脚本传参数方法总结,本文着重讲解传递固定个数参数的方法、可变个数参数的方法两部份内容,需要的朋友可以参考下

  一、接收固定长度的参数

   代码如下:

  [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

时间: 2025-01-13 08:38:19

Shell脚本传参数方法总结的相关文章

Shell脚本传参数方法总结_linux shell

一.接收固定长度的参数 复制代码 代码如下: [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" 空参数执行 复制代码 代码如下: [roo

Shell脚本传递参数的3种方法比较

  这篇文章主要介绍了Shell脚本传递参数的3种方法比较,本文直接给出代码示例,在代码中包含详细注解,需要的朋友可以参考下 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65

Shell脚本传递参数的3种方法比较_linux shell

#!/bin/bash #extracting command text_text_text_line options as parameters help_info(){ echo "NAME" echo "\t$0" echo "SYNOPSIS" echo "\t$0 is a shell test about process options" echo "DESCRIPTION" echo &quo

PHP教程之PHP中shell脚本的使用方法

我们都知道,在计算机科学中,SHELL类似于DOS下的command.com.它接收用户命令,然后调用相应的应用程序.同时它又是一种程序设计语言.作为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高阶语言中才具有的控制结构,包括循环和分支. PHP经过长时间的发展,很多用户都很了解PHP了,这里我发表一下个人理解,和大家讨论讨论.大多数情况下,我使用 exec() 命令和数据数组处理所有东西.或者对

PHP教程之PHP中shell脚本的使用方法分享_php技巧

作为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高阶语言中才具有的控制结构,包括循环和分支. PHP经过长时间的发展,很多用户都很了解PHP了,这里我发表一下个人理解,和大家讨论讨论.大多数情况下,我使用 exec() 命令和数据数组处理所有东西.或者对更简单的命令使用 shell_exec(),尤其是不关心结果时.如果仅需返回一个 PHP shell脚本,我就使用 passthru().通常,我

对Shell 脚本加密的方法_linux shell

用shell脚本对系统进行自动化维护,简单,便捷而且可移植性好. 但shell脚本是可读写的,很有可能会泄露敏感信息,如用户名,密码,路径,IP等. 同样,在shell脚本运行时会也泄露敏感信息. shc是一个加密shell脚本的工具.它的作用是把shell脚本转换为一个可执行的二进制文件. 这就很好的解决了上述问题. shc 安装 yum -y install shc 使用方法: shc -r -f script-name 注意:要有-r选项, -f 后跟要加密的脚本名. 运行后会生成两个文件

linux shell脚本通过参数名传递参数值

平常在写shell脚本都是用$1,$2....这种方式来接收参数,然而这种接收参数的方式不但容易忘记且不易于理解和维护.Linux常用的命令都可指定参数名和参数值,然而我们怎样才能给自己的shell脚本也采用参数名和参数值这样的方式来获取参数值呢?而不是通过$1,$2这种方式进行获取.下面的例子定义了短参数名和长参数名两种获取参数值的方式.其实是根据getopt提供的特性进行整理而来. #!/bin/sh #说明 show_usage="args: [-l , -r , -b , -w]\ [-

验证用户输入的参数合法性的shell脚本_linux shell

今天这个例子是 用来验证用户输入的参数的合法性的,程序并不复杂,如下所示: #!/bin/sh # validAlphaNum - Ensures that input consists only of alphabetical # and numeric characters. validAlphaNum() { # Validate arg: returns 0 if all upper+lower+digits, 1 otherwise # Remove all unacceptable

怎样在java代码中调用执行shell脚本呀

问题描述 遇到个问题   在本地压缩服务器上的xml文件 我就想编写shell教本 脚本内容是链接服务器 找到待压缩文件 压缩文件  说实话 我不知道这样是否可行  试试  但我不知道怎样在java代码中 调用执行shell脚本  谁能指点指点  求教...  问题补充:首先谢谢各位朋友的回答  在补充个小问题 <br />能在调用shell脚本时 同时给shell脚本传参数吗  不止一个 能这样写吗     <br />Runtime.getRuntime().exec(&quo