shift_循环获取位置参数

简介:  ①shift命令会重新分配位置参数, 其实就是把所有的位置参数都向左移动一个位置.   $1  < --- $2 , $2 < --- $3 , $3 < --- $4 , 等等.  原来的$1 就消失了, 但是$0 (脚本名)是不会改变的 . 如果传递了大量的位置参数到脚本中, 那么shift命令允许你访问的位置参数的数量超过10 个, 当然{}标记法也提供了这样
 ①shift命令会重新分配位置参数, 其实就是把所有的位置参数都向左移动一个位置.
  $1  < --- $2 , $2 < --- $3 , $3 < --- $4 , 等等.
 原来的$1 就消失了, 但是$0 (脚本名)是不会改变的 . 如果传递了大量的位置参数到脚本中, 那么shift命令允许你访问的位置参数的数量超过10 个, 当然{}标记法也提供了这样的功能.

②shift命令执行以后, $@ 将会保存命令行中剩余的参数, 但是没有之前的$1 , 因为被丢弃了.
  每次"shift" 都会丢弃$1.
 "$@" 将包含剩下的参数.

③位置参数变量:$1 ,$2 ...$9 , ${10},${11}
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.

------------------>while + shift! 方法1!循环获取位置参数!
while (( $# > 0 ))
do
    echo $1;
    shift;
done
----------------->for 循环!方法二
#"$@" -nice--->代表就是参数列表!
for i in "$@"
do
    echo $i;
done
------------------>!i 间接引用! 方法三
i=1;
while (( i <= $# ))
do
   echo ${!i}; # 间接引用! 直接 $1 这样处理会出问题,不加 ! ,输出的就是数字!??因为外面的参数是i 的值,而我们需要使用i,需要 ! 间接引用!
   let i++;
   # (( i++ ))  (( )) 的运算速度快一些!?
done

----------------->两次间接变量应用! 方法四 (独创喔,也就瞎折腾)
#!/bin/bash
# 间接变量引用

i=1;
while (( i <= $# ))
do
  j=i
  eval j=\$$j       # 直接对变量i间接引用的话,不好自加操作了!
  eval j=\$$j
  echo $j;
  let i++;
done

Eval的简单了解可以看笔者之前的博文!



目录
相关文章
|
1月前
|
人工智能
依次后移一个位置
依次后移一个位置。
33 12
|
4月前
|
语音技术
语音识别-----列表的常用操作课后练习讲解,用变量追加,取出第一个,取出最后一个,下标位置,列表的循环遍历,下标+1的写法,len下标可以小于这个值,while循环对index循环的遍历
语音识别-----列表的常用操作课后练习讲解,用变量追加,取出第一个,取出最后一个,下标位置,列表的循环遍历,下标+1的写法,len下标可以小于这个值,while循环对index循环的遍历
全选和反选中for循环加if判断只会判断最后一个的问题(已解决)
全选和反选中for循环加if判断只会判断最后一个的问题(已解决)
55 0
|
6月前
|
存储 前端开发 Java
去掉参数中第一个“,”
去掉参数中第一个“,”
58 0
|
6月前
列表排序按钮常用方法,实现“向前移动到第一个↑”、“向前移动∧”、“向后移动∨”、“向后移动到最后一个↓”
列表排序按钮常用方法,实现“向前移动到第一个↑”、“向前移动∧”、“向后移动∨”、“向后移动到最后一个↓”
AS中,使用CTRL+SHIFT+BS返回上一个编辑位置
AS中,使用CTRL+SHIFT+BS返回上一个编辑位置
161 0
打印列表去除[](简易循环方法)
想要print(list)结果不是这样:[1,2,3] 预期结果:共有3个数字满足,分别是:1 2 3
84 0