手册页部分 1: 用户命令

退出打印视图

更新时间: 2014 年 7 月
 
 

shift(1)

名称

shift - shell 内置函数,用于遍历 shell 的参数列表或以字段分隔的单词列表

用法概要

sh

shift [n]

csh

shift [variable]

ksh88

*shift [n]

ksh88

+shift [n]

描述

sh

$n+1 . . . 中的位置参数重命名为 $1 . . .。如果未指定 n,则假定它为 1。

csh

argvvariable 的组件(如果提供)将向左移动,并丢弃第一个组件。不设置 variable 或者将其设置为具有空值是错误的。

ksh88

将来自 $n+1 $n+1 . . . 的位置参数重新命名为 $1 . . .,缺省 n 为 1。参数 n 可以为任何算术表达式,此算术表达式的计算结果为小于或等于 $# 的非负数字。

在本手册页中,前面加有一个或两个 *(星号)的 ksh88(1) 命令将通过以下方式进行特殊处理:

  1. 命令完成时,该命令前面的变量赋值列表仍然有效。

  2. 在变量赋值后进行 I/O 重定向。

  3. 脚本中包含的错误会导致其中止。

  4. 如果字的后面是前面加有**的命令且字为变量赋值的格式,则使用与变量赋值相同的规则扩展这些字。这表示在 = 符号之后执行波浪号替换,并且不执行字拆分和文件名生成。

ksh

shift 是一种特殊内置 shell,用于将位置参数向左移动 n 所定义的位数或移动 1 位(如果省略了 n)。位置参数的剩余数量将随所移动的位数相应减少。

如果指定了 n,其值将作为算术表达式进行计算,以确定要移动的位数。如果移动的位数大于位置参数的数量或移动位数为负,则会出错。

ksh 中的 shift 将返回以下退出值:

0

成功完成。成功移动了位置参数。

>0

出现错误。

在本手册页上,前面带一个或两个 +ksh(1) 命令将专门通过以下方式进行处理:

  1. 命令完成时,该命令前面的变量赋值列表仍然有效。

  2. 在变量赋值后进行 I/O 重定向。

  3. 脚本中包含的错误会导致其中止。

  4. 它们不是有效的函数名称。

  5. 如果字的后面是前面加有 ++ 的命令且字为变量赋值的格式,则使用与变量赋值相同的规则扩展这些字。这意味着将在 = 符号之后执行波浪号替换,并且不执行字段分割和文件名生成。

属性

有关下列属性的说明,请参见 attributes(5)

属性类型
属性值
可用性
system/core-os

另请参见

csh(1)ksh(1)ksh88(1)sh(1)attributes(5)