shell 通过shift获得某位后的入参

有时shell的入参个数不定,想要获得第2位后的参数,作为新的入参调用其他脚本

通常这时候想到的方法是用遍历,例如下面的方法:

for (( i=2;i<=$#;i++))

do

echo $i

done

更简便的方法:使用shift去移动参数,shift (n),默认n为1,移动的位数

shift会将n位前的入参舍弃掉,只会保留n+1以及他后面的入参

例如:shift 2,会舍弃第一位第二位入参,只保留第3位及以后的入参

执行 test.sh 1 2 3 4 5 6 7 8 9,test.sh的脚本以及执行结果如下

./test 1 2 3 4 5 6 7 8 9

++ echo 1

1

++ shift

++ echo 2

2

++ echo 2 3 4 5 6 7 8 9

2 3 4 5 6 7 8 9

++ shift 2

++ echo 4 5 6 7 8 9

时间: 2024-08-11 04:55:25

shell 通过shift获得某位后的入参的相关文章

shell生成100个6位随机数

shell生成100个6位随机数的方法很多:下面写一个,脚本如下: 执行的结果

iOS 身份证最后一位是X,输入17位后自动补全X(转)

非原创,转载自http://blog.csdn.net/l2i2j2/article/details/51542028如果身份证最后一位是X,输入17位后自动补全X// textField代理方法 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { // string.length为0,表明没有输

shell中 shift的使用

[[email protected] shell]# cat shift.sh #!/bin/bash until [ $# -eq 0 ];do echo "the first is:$1  total is $#" shift done [[email protected] shell]# ./shift.sh  1 2 3 4 5 6 the first is:1  total is 6 the first is:2  total is 5 the first is:3  tot

升级Ubuntu 到14.04 64位 后eclipse出现闪退现象

升级Ubuntu 到14.04 64位 后eclipse出现闪退现象,搜了各种方法,最后解决问题 解决方法: 在所装的eclipse的目录下有个configuration/config.ini 文件 最后一行添加:org.eclipse.swt.browser.DefaultType=mozilla

整数m去掉n位后剩下最大(小)值

题目描述 给定一个正整数(<=255位),从中删去n位后,使得剩下的数字组成的新数最小(大): 思路:从左到右开始扫描,两两比较,如果是前一位比后一位大,则删去前大的一位,直到删完所有的n位: [从论坛看到的一个题目,觉得挺好的,代码是论坛的大佬写的,不过好像没处理好以0开头的问题.] 再贴一个c写的吧,这也写得挺好的:https://blog.csdn.net/liveas/article/details/5732759 1 public static void main(String[] a

使用windows系统编写shell代码,在linux执行后的报错

使用windows系统编写shell代码,在linux执行后,产生如下的错误 [[email protected] vagrant]# bash /var/www/borg/fuel/app/tasks/monitor_sync.sh /var/www/borg/fuel/app/tasks/monitor_sync.sh: line 11: $'\r': command not found /var/www/borg/fuel/app/tasks/monitor_sync.sh: line 1

Jmeter 接口测试对上接口结果二次处理作为入参 Bean Shell Processor

1.线程组设置,HTTP COOKIE ,HTTP请求默认值设置,;注:Cookie主要传递登录状态 2.设置登录 http 请求 3.登录后,访问数据接口(并对数据返回值做后置处理) 4.添加二次处理相关接口 Http请求 5.对此接口进行预处理 使用Bean Shell Processor   注:本次写的代码所涉及的参数名,为3和4中的参数名,主要将3处的结果通过5处理传递给4处当做入参使用

将一整数逆序后放入一数组中

1.题目描述 将一整数逆序后放入一数组中(非递归实现) 例如: 1234 变为 {4,3,2,1} 2.代码实现 1 package com.wcy.october; 2 3 /** 4 * 时间:2016年10月23日 5 * 题目:将一整数逆序后放入一数组中(非递归实现) 例如: 1234 变为 {4,3,2,1} 6 */ 7 public class RecursionTest2 { 8 9 /** 10 * 将一整数逆序后放入一数组中 11 * @param number 待逆序的整数

mysql安装完成后登入错误

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 解决: 1.先停止mysql服务,命令如下: #/etc/init.d/mysql stop 2.重新启动服务,命令如下: #  /etc/init.d/mysql stop#  mysqld_safe --user=mysql --skip-grant-tables --skip-networking & 3.登入mysql并修