`
MauerSu
  • 浏览: 513457 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Shell script: 获取第10+个参数

 
阅读更多
源:http://www.cnblogs.com/sheldonxu/archive/2012/06/25/2560770.html
评:
在Shell脚本中,可以用$n的方式获取第n个参数,例如,一个名为paramtest的脚本:

    #!/bin/bash
    echo $1 $2

执行./paramtest a b 的结果是打印出第1个和第2个参数:

    a b

但是,若脚本需要10个以上的参数,直接写数字会有问题。例如,脚本为:

    #!/bin/bash
    echo $1 $2 $3 $4 $6 $7 $8 $9 $10

执行./paramtest a b c d e f g h i j,结果如下,第10个参数是不对的:

    a b c d e f g h i a0

显然$10被解释成了$1+0。

解决方法很简单,第10个参数加花括号即可:

    #!/bin/bash
    echo $1 $2 $3 $4 $6 $7 $8 $9 ${10}

再次执行./paramtest a b c d e f g h i j,结果正确:

    a b c d e f g h i j
分享到:
评论

相关推荐

    shell script编程学习笔记

    - **Shell 脚本**: Shellscript,是一种为Shell编写的脚本程序。 ##### 2.2 脚本解释器 - **查看可使用的Shell**: - 可以在 `/etc/shells` 文件下查看可使用的Shell。 - **常用Shell**: - **sh**: 即 Bourne...

    习题07-Shell编程.doc

    3. 另一个SHELL程序:这个程序首先将第一个位置参数赋值给`dir`(#1),接着检查`dir`是否为有效目录(#2),如果是,则切换到该目录(#3),然后遍历目录中的所有文件(#4),对于每一个文件,如果它是普通文件(#5...

    Bash 新手指南, 命令及shell script

    10. **函数参数**:`$0`表示脚本本身,`$1`到`$9`表示传递给脚本的参数,`$#`表示参数总数,`$*`和`"$@"`表示所有参数。 ### 三、学习资源与实践 要深入学习Bash,你可以参考以下资源: - `man bash`:查看Bash...

    30 Bash Script Examples

    1. “Hello World”:类似于编程语言教学中的“Hello World”,Bash脚本的第一个示例通常是输出“Hello World”,这有助于用户了解脚本如何在终端中运行。 2. Echo命令:在Bash脚本中,echo命令用于输出字符串到...

    cshell 教程 非常好用哦

    $`获取上一条命令的最后一个参数。 在学习CShell的过程中,参考《cshell-chinese.pdf》文档会非常有帮助,它包含了详尽的CShell语法和实例,是深入理解和掌握CShell的好帮手。通过实践和探索,你将能够充分利用C...

    shell脚本学习手册

    - Shell是一个用C语言编写的程序,它作为用户与Linux系统的桥梁,提供了一个命令行接口来访问操作系统服务。 - Shell既是命令语言也是程序设计语言。 2. **Shell脚本介绍** - Shell脚本(Shell Script)是为...

    shell脚本100例

    13. **数组**: Bash支持数组,如 `MY_ARRAY=(element1 element2)`, 通过 `${MY_ARRAY[@]}` 获取所有元素,`${MY_ARRAY[0]}` 获取第一个元素。 14. **命令替换**: 使用反引号(`)或 `$()` 执行命令并将其结果插入到...

    shellscript-Programming

    `$*`和`$@`用于获取命令行参数,前者视为一个整体,后者则每个参数分开。 4. **流程控制**:包括条件语句(`if-then-else`,`case`)和循环语句(`for`,`while`,`until`)。例如,`if [ condition ]; then ...

    (完整版)Linux下Shell编程.docx

    - **位置参数**:`$0`表示脚本本身,`$1, $2, ..., $n`分别代表传递给脚本的第一个、第二个至第n个参数。 - **内部参数**:`$#`表示参数总数。 - **使用`$*`表示所有参数,作为一个字符串**。 6. **变量赋值**:...

    Linux Shell脚本学习

    2. **命令行参数**:`$1`表示第一个参数,`$2`表示第二个参数,依此类推。 3. **参数展开**: - `$@`会将参数展开为单独的字符串,例如`$1` `"$2"`等。 - `$*`会将所有参数作为一个整体展开,参数间由IFS...

    Linux shell传递参数实现原理及代码实例

    如果传递的参数超过9个,可以通过`$10`、`$11`等方式获取。 - `$0`: 不是参数,但代表了执行脚本的文件名。 3. **特殊字符参数** - `$#`: 显示传递给脚本的参数总数。例如,如果有三个参数,`$#`的值将是3。 - `...

    linux下的shell编程入门

    来获取上一个命令的退出状态。 以上是Shell编程的一些基础知识点,当然Linux Shell编程涵盖的内容远不止这些,还包括文本处理工具如awk、sed的使用,正则表达式,信号处理等高级特性,适合进一步深入学习和实践。

    shell脚步-之经典面试70题

    假如文件中每行第一个元素是FIND,如何获取第二个元素 使用`awk`命令结合条件判断来提取特定行的数据。 **示例**: ```bash awk '{if ($1 == "FIND") print $2}' filename.txt ``` #### 10. 如何调试bash脚本 可以...

    SHELL自动化测试

    - 例如,下面是一个简单的脚本,它会根据第一个参数的值打印不同的消息: ```bash if [ "$1" = "hello" ]; then echo "Hello World!" else echo "Unknown command" fi ``` #### Shell自动化测试实践 1. **...

    shell脚本高级操作.pdf

    - `$1` 表示第一个参数; - `$2` 表示第二个参数; - `...` 以此类推; - `$@` 可以用来表示所有参数。 例如,创建一个接受两个参数的脚本,并将其作为命令行参数传递: ```bash ./script.sh arg1 arg2 ``` #### ...

    Linux之Shell编程Part_2.rar

    8. **命令行参数**:脚本可以接收命令行参数,通过`$#`获取参数总数,`$0`表示脚本本身,`$1`到`$9`分别代表第一个到第九个参数。 9. **脚本执行权限**:使用`chmod`命令设置脚本的执行权限,如`chmod +x script.sh...

    很好的Shell总结教程

    编写Shell脚本的第一步是创建一个新的文本文件,并在文件开头声明所使用的Shell类型,通常以`#!/bin/bash`开头表示使用Bash Shell。接下来可以在文件中添加各种命令和逻辑,保存后通过运行`chmod +x scriptname.sh`...

    shell编程实例

    - **变量 `$1`, `$2`, `$3`**:分别表示传递给脚本的第一个、第二个和第三个参数。 - **变量 `#$`**:表示传递给脚本的所有参数的数量。 - **变量 `$$`**:表示当前正在运行的进程的ID。 **应用示例:** 假设执行该...

    Linux Shell Scripting with Bash

    `$0`表示脚本名,`$1`到`$9`表示第一个到第九个参数,更多参数可通过`$@`或`$*`获取。 ### 4. 条件语句 Bash支持条件测试,如`if`、`elif`、`else`和`fi`结构。可以使用测试运算符(如`-eq`、`-ne`、`-lt`、`-gt`等...

Global site tag (gtag.js) - Google Analytics