`

Shell编程中Shift的用法

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

示例如下:

#测试 shift 命令(x_shift.sh)
until [ $# -eq 0 ]
do
echo "第一个参数为: $1 参数个数为: $#"
shift
done
执行以上程序x_shift.sh:
$./x_shift.sh 1 2 3 4

结果显示如下:

第一个参数为: 1 参数个数为: 4
第一个参数为: 2 参数个数为: 3
第一个参数为: 3 参数个数为: 2
第一个参数为: 4 参数个数为: 1

从上可知 shift 命令每执行一次,变量的个数($#)减一,而变量值提前一位,下面代码用 until 和 shift 命令计算所有命令行参数的和。

#shift 上档命令的应用(x_shift2.sh)
if [ $# -eq 0 ]
then
echo "Usage:x_shift2.sh 参数"
exit 1
fi
sum=0
until [ $# -eq 0 ]
do
sum=`expr $sum + $1`
shift
done
echo "sum is: $sum"

执行上述程序:

$x_shift2.sh 10 20 15

其显示结果为:

45

  Shift 命令还有另外一个重要用途, Bsh 定义了9个位置变量,从 $1 到 $9,这并不意味着用户在命令行只能使用9个参数,借助 shift 命令可以访问多于9个的参数。

  Shift 命令一次移动参数的个数由其所带的参数指定。例如当 shell 程序处理完前九个命令行参数后,可以使用 shift 9 命令把 $10 移到 $1。

https://www.cnblogs.com/image-eye/archive/2011/08/20/2147153.html


Linux中shell变量$0,$?等含义
linux中shell变量$#,$@,$0,$1,$2的基本含义:
变量说明:
$$
Shell本身的PID(ProcessID)
$!
Shell最后运行的后台Process的PID
$?
最后运行的命令的结束代码(返回值)
$-
使用Set命令设定的Flag一览
$*
所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
$@
所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。
$#
添加到Shell的参数个数
$0
Shell本身的文件名
$1~$n
添加到Shell的各参数值。$1是第1参数、$2是第2参数

http://www.cnblogs.com/coffy/p/5740396.html
分享到:
评论

相关推荐

    LINUX与UNIX SHELL编程指南(很全)

    第四部分 基础shell编程 第16章 shell脚本介绍 151 16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 ...

    Shell编程(进阶).pdf

    #### 一、Shell编程高级用法概览 **Shell编程**是一种在Linux和Unix系统中非常重要的技能,它能够帮助用户通过编写脚本来自动化执行一系列任务。Shell编程的基础知识包括命令行操作、变量管理、流程控制等。而进阶...

    shell 编程(中文)[pdf]

    016_基础shell编程_shell脚本介绍.pdf 017_条件测试_test_expr.pdf 018_控制流结构_if_for_while_case_util_break_continue.pdf 019_Shell函数.pdf 020_向脚本传递参数_shift_getops.pdf 021_创建屏幕输出_tput.pdf ...

    shell 编程指南pdf

    第四部分 基础shell编程 第16章 shell脚本介绍 151 16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 ...

    Linux与unix shell编程指南

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell ...

    shell编程学习笔记

    变量: 变量的赋值和引用 在shell编程中变量没有类型,简称弱类型编程语言,不需要声明,在引用这个变量时会创建它(在变量名前加$符号引用变量的值)。在定义变量时,若String中包含空格、制表符、换行符,需用单...

    LINUX与UNIX SHELL编程指南 高清PDF

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell...

    Linux与Unix Shell编程指南(PDF格式,共30章)

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 ...

    Shell脚本编程入门100例

    **Shell脚本编程入门100例** Shell脚本是Linux操作系统中的一种强大的自动化工具,它允许用户通过编写一系列命令来执行复杂的任务。这本"Shell脚本编程入门100例"教程针对初学者,提供了丰富的实例,旨在帮助读者...

    Shell编程——入门资料

    Shell编程是Linux操作系统中一种强大的命令行脚本语言,它允许用户通过编写脚本来自动化日常任务,提高工作效率。本文将深入探讨Shell编程的基础知识,帮助初学者快速入门。 首先,了解Shell是什么至关重要。Shell...

    LINUX与UNIX SHELL编程指南LINUX与UNIX SHELL编程指南24

    《LINUX与UNIX SHELL编程指南》第24章主要探讨了SHELL的嵌入式命令,这些命令是直接在shell环境中内置的,而非存在于/bin或/usr/bin等系统目录下。由于它们直接由shell执行,因此执行速度相对较快。本章详细介绍了多...

    shell编程中文

    **Shell编程中文版**是针对Linux或Unix系统中Shell脚本编写的一份详细教程,共有30个章节,以PDF格式提供,源自China-pub。这份资料深入浅出地介绍了如何利用Shell进行程序设计,帮助用户更好地管理和自动化操作系统...

    shell编程指南全套2

    条件测试是Shell编程中的核心部分,涵盖了`if`, `if-then-else`, `case`语句,以及测试运算符(如 `-eq`, `-ne`, `-gt`, `-lt`, `-ge`, `-le`)的使用。 6. **27几个脚本例子.pdf** 提供实际脚本案例,帮助理解...

    linux shell 编程教程

    linux shell编程 教程大全 目 录 译者序 前言 第一部分 shell 第1章 文件安全与权限 1 1.1 文件 1 1.2 文件类型 2 1.3 权限 2 1.4 改变权限位 4 1.4.1 符号模式 4 1.4.2 chmod命令举例 5 1.4.3 绝对模式 5 1.4.4 ...

    shell脚本编程02

    在"shell脚本编程02"这个主题中,我们将会深入探讨一些高级的shell编程技巧,特别是关于变量处理和文件操作的部分。 首先,让我们来看一下"Shell变量替换技术实践与生产实战教训案例"。在shell脚本中,变量替换允许...

    Linux与Unix Shell编程指南

    它涵盖了在Linux和Unix环境中广泛使用的Shell编程技术,帮助用户更好地理解并利用Shell的强大功能。本书通过对多个关键章节的深入探讨,提供了丰富的知识内容,包括: 1. **第一章:文件安全与权限** - 介绍了Linux...

    绝版经典《Linux与UNIX Shell编程指南》

    11.1.12 使用k的其他sort方法 108 11.1.13 使用k做分类键排序 108 11.1.14 指定sort序列 108 11.1.15 pos用法 108 11.1.16 使用head和tail将输出分类 109 11.1.17 awk使用sort输出结果 109 11.1.18 将两个分类文件...

    shift妙用之解决shell编程中的入参问题

    在Shell脚本编程中,经常会遇到需要处理不定数量的参数情况。这时,`shift`命令就显得尤为重要。`shift`是Bash shell提供的一种机制,...在实际编程中,熟练掌握`shift`的用法能够极大地提高脚本的可读性和可维护性。

    Linux shell编程指南

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 ...

    LINUX与UNIX SHELL编程指南

    第四部分 基础shell编程 第16章 shell脚本介绍 151 16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 ...

Global site tag (gtag.js) - Google Analytics