linux下shell编程中Shift的用法

位置参数可以用shift命令左移。比如shift 3表示原来的$4现在变成了$1,原来的$5现在变成了$2,原来的$1、$2、$3丢弃,$0不移动。不带参数的shift命令相当于shift 1。

非常有用的Unix命令:shift。我们知道,对于位置变量或者命令参数,其个数必须是确定的,或者当shell程序不知道其个数时,可以把所有参数一起赋值变量$*。左路用户要求Shell在不知道位置变量个数的情况下,还能逐个的把参数—处理,也就是在$1后为$2,在$2后面为$3等。在shfit命令执行前变量$1的值在shift命令执行后就不可用了。

例子一:

#!/bin/bash
until [ $# -eq 0 ]
do
        echo "The first parameter:$1 number is:$#"
        shift
done

例子二:

#!/bin/bash
if [ $# -eq 0 ]
then
        echo "Usage:a2.sh parameter"
        exit 1
fi
sum=0
until [ $# -eq 0 ]
do
        sum=`expr $sum + $1`
        shift
done
echo "sum is: $sum"

例子三:

下面以一个简单的脚本来说明,脚本内容如下:

#!/bin/sh

until [ $# -eq 0 ]
do
echo "第一个参数为: $1 参数个数为: $#"
shift
done执行以上程序x_shift.sh:

[root@AY1404171530212980a0Z test]# ./test 11 22 33 44 55 66 77

结果显示如下:
 

第一个参数为: 11 参数个数为: 7
第一个参数为: 22 参数个数为: 6
第一个参数为: 33 参数个数为: 5
第一个参数为: 44 参数个数为: 4
第一个参数为: 55 参数个数为: 3
第一个参数为: 66 参数个数为: 2
第一个参数为: 77 参数个数为: 1

时间: 2024-09-28 17:18:07

linux下shell编程中Shift的用法的相关文章

Shell编程中Shift的用法

http://www.cnblogs.com/image-eye/archive/2011/08/20/2147153.html 前一个例子看明白了,后面还没看清楚 Shell编程中Shift的用法 位置参数可以用shift命令左移.比如shift 3表示原来的$4现在变成$1,原来的$5现在变成$2等等,原来的$1.$2.$3丢弃,$0不移动.不带参数的shift命令相当于shift 1. 非常有用的 Unix 命令:shift.我们知道,对于位置变量或命令行参数,其个数必须是确定的,或者当

Linux下shell编程中数组的常见用法及示例

新版本的Bash支持一维数组. 数组元素可以使用符号variable[xx]等方式来初始化. 另外, 脚本可以使用declare -a variable语句来指定一个数组等.要引用一个数组元素(也就是取值), 可以使用大括号, 访问形式为${variable[xx]},当然了,下面是一些老男孩经常使用的方法和对数组的一点理解,如有高见,欢迎指导,先谢谢博友们了. 1.1 shell数组的常用定义方法: 1)方法一: 命令法: dir=($(ls .)) 范例1:手工命令行操作演示 [root@o

Shell编程中Shift的用法(转)

位置参数可以用shift命令左移.比如shift 3表示原来的$4现在变成$1,原来的$5现在变成$2等等,原来的$1.$2.$3丢弃,$0不移动.不带参数的shift命令相当于shift 1. 非常有用的 Unix 命令:shift.我们知道,对于位置变量或命令行参数,其个数必须是确定的,或者当 Shell 程序不知道其个数时,可以把所有参数一起赋值给变量$*.若用户要求 Shell 在不知道位置变量个数的情况下,还能逐个的把参数一一处理,也就是在 $1 后为 $2,在 $2 后面为 $3 等

Linux下Shell编程快捷键大全(日常整理)_linux shell

有时候,我们需要在 Bash 中重复执行先前的命令.你当然可以使用上方向键来查看之前曾经运行过的命令.但这里有一些更好的方式,例如,数量掌握以下的快捷键. 1) !!:重复执行上一条指令 2) !a:重复执行上一条以a为首的指令 3) !number:重复执行上一条在history表中记录号码为number的指令 4) !-number:重复执行前第number条指令 5) !$:表示获得上一条命令中的最后一项内容 6) 用Ctrl + r 组合键来进入历史搜索模式在history表中查询某条过

Linux下c++编程中,STL模板的使用。

问题描述 Linux下c++编程中,STL模板的使用. Linux下c++编程,使用STL模板,为什么只识别#include 而不识别#include ? 程序中只要有#include 就会报无数多个错! 解决方案 难道c++标准模板库STL中没有包含queue,你可以去根目录去看看include头文件中有没有queue.h 解决方案二: STL头文件目录是否被include进项目中,如果自己写makefile的话,查看下INCLUDE的目录,如果IDE的话就查看下项目设置中的include选项

Linux下Shell编程

Linux的shell编程  1.什么是shell? 当一个用户登录Linux系统之后,系统初始化程序init就为每一个用户运行一个称为shell(外壳)的程序. shell就是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell来启动.挂起.停止甚至是编写一些程序.一般的Linux系统都将bash作为默认的shell. 2.几种流行的shell 目前流行的shell有ash.bash.ksh.csh.zsh等,可以用下面的命令来查看sh

Linux下shell编程实例

1. 判断一文件是不是块或字符设备文件,如果是将其拷贝到 /dev 目录下 read -p "input a file:" filename if [ -b $filename -o -c $filename ] then cp $filename /dev/ fi 2.编写一个脚本,进行简单的减法运算,要求提示输入变量 #!/bin/bash read -p "input a number:" num1 read -p "input another nu

linux下Shell编程--标准的守护进程的启动脚本

一个标准的守护进程的启动脚本: #! /bin/sh WHOAMI=`whoami` PID=`ps -u $WHOAMI | gerp mydaemond | awk '{print $1}'` if (test "$1" = "") then echo "mydaemond [start][stop][version]" exit 0 fi if ( test "$1" = "status") then

Linux下Shell脚本中几种基本命令的替换区别_linux shell

Part 1 : ` command ` 这是 "命令标准输出作为函数标准输入" 操作方法之一,有很大的弊端以及不安全的地方. 缺点一:比较陈旧. 缺点二:容易与单引号混淆.(其实它是你键盘"!"左边那个键) Part 1.5 ` command``与 $(command) 俩者区别 直接看几张图吧,看这图解释他们区别... 大家可以看到俩种表达方式,分别是代表命令直接执行和嵌套执行. 我们发现:执行`` 和 $() 是相同的. 附,其实这里有个小bug...( 橙