| Current File : //usr/share/man/zh_CN.UTF-8/man1/shift.1 |
'\" te
.\" Copyright (c) 2007, 2011, Oracle and/or its affiliates.All rights reserved.
.\" Copyright 1989 AT&T
.\" Portions Copyright (c) 1982-2007 AT&T Knowledge Ventures
.TH shift 1 "2011 年 7 月 12 日" "SunOS 5.11" "用户命令"
.SH 名称
shift \- shell 内置函数,用于遍历 shell 的参数列表或以字段分隔的单词列表
.SH 用法概要
.SS "sh"
.LP
.nf
\fBshift\fR [\fIn\fR]
.fi
.SS "csh"
.LP
.nf
\fBshift\fR [\fIvariable\fR]
.fi
.SS "ksh88"
.LP
.nf
\fB*shift\fR [\fIn\fR]
.fi
.SS "ksh88"
.LP
.nf
\fB+shift\fR [\fIn\fR]
.fi
.SH 描述
.SS "sh"
.sp
.LP
将 \fB$\fR\fIn\fR\fB+1\fR . . . 中的位置参数重命名为 \fB$1\fR . . .。如果未指定 \fIn\fR,则假定它为 1。
.SS "csh"
.sp
.LP
\fIargv\fR 或 \fIvariable\fR 的各部分(如果提供)将向左移动,并丢弃第一个部分。不设置 variable 或者将其设置为具有空值是错误的。
.SS "ksh88"
.sp
.LP
将来自 \fB$\fR\fIn\fR\fB+1\fR \fB$\fR\fIn\fR\fB+1 . . .\fR 的位置参数重新命名为 \fB$1 . . .\fR,缺省 \fIn\fR 为 1。参数 \fIn\fR 可以为任何算术表达式,此算术表达式的计算结果为小于或等于 \fB$#\fR 的非负数字。
.sp
.LP
在本手册页中,前面加有一个或两个 *(星号)的 \fBksh88\fR(1) 命令将通过以下方式进行特殊处理:
.RS +4
.TP
1.
命令完成时,该命令前面的变量赋值列表仍然有效。
.RE
.RS +4
.TP
2.
在变量赋值后进行 \fBI/O\fR 重定向。
.RE
.RS +4
.TP
3.
脚本中包含的错误会导致其中止。
.RE
.RS +4
.TP
4.
如果字的后面是前面加有**的命令且字为变量赋值的格式,则使用与变量赋值相同的规则扩展这些字。这表示在 \fB=\fR 符号之后执行波浪号替换,并且不执行字拆分和文件名生成。
.RE
.SS "ksh"
.sp
.LP
\fBshift\fR 是一种特殊内置 shell,用于将位置参数向左移动 \fIn\fR 所定义的位数或移动 \fB1\fR 位(如果省略了 \fIn\fR)。位置参数的剩余数量将随所移动的位数相应减少。
.sp
.LP
如果指定了 \fIn\fR,其值将作为算术表达式进行计算,以确定要移动的位数。如果移动的位数大于位置参数的数量或移动位数为负,则会出错。
.sp
.LP
\fB ksh\fR 中的 \fBshift\fR 将返回以下退出值:
.sp
.ne 2
.mk
.na
\fB\fB0\fR\fR
.ad
.RS 6n
.rt
成功完成。成功移动了位置参数。
.RE
.sp
.ne 2
.mk
.na
\fB\fB>0\fR\fR
.ad
.RS 6n
.rt
出现错误。
.RE
.sp
.LP
在本手册页上,前面带一个或两个 \fB+\fR 的 \fBksh\fR(1) 命令将专门通过以下方式进行处理:
.RS +4
.TP
1.
命令完成时,该命令前面的变量赋值列表仍然有效。
.RE
.RS +4
.TP
2.
在变量赋值后进行 \fBI/O\fR 重定向。
.RE
.RS +4
.TP
3.
脚本中包含的错误会导致其中止。
.RE
.RS +4
.TP
4.
它们不是有效的函数名称。
.RE
.RS +4
.TP
5.
如果字的后面是前面加有 \fB++\fR 的命令且字为变量赋值的格式,则使用与变量赋值相同的规则扩展这些字。这意味着将在 \fB=\fR 符号之后执行波浪号替换,并且不执行字段分割和文件名生成。
.RE
.SH 属性
.sp
.LP
有关下列属性的说明,请参见 \fBattributes\fR(5):
.sp
.sp
.TS
tab() box;
cw(2.75i) |cw(2.75i)
lw(2.75i) |lw(2.75i)
.
属性类型属性值
_
可用性system/core-os
.TE
.SH 另请参见
.sp
.LP
\fBcsh\fR(1)、\fBksh\fR(1)、\fBksh88\fR(1)、\fBsh\fR(1)、\fBattributes\fR(5)