社区
Linux_Kernel
帖子详情
shell里的shift问题
L_thread
2010-09-17 05:37:48
while [ $# -gt 0 ] ; do
case "$1" in
--) shift ; break ;;
-a) shift ; APPEND=yes ;;
-n) shift ; BOARD_NAME="${1%%_config}" ; shift ;;
*) break ;;
esac
done
这个程序怎么理解?
...全文
221
8
打赏
收藏
shell里的shift问题
while [ $# -gt 0 ] ; do case "$1" in --) shift ; break ;; -a) shift ; APPEND=yes ;; -n) shift ; BOARD_NAME="${1%%_config}" ; shift ;; *) break ;; esac done 这个程序怎么理解?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
masmaster
2010-09-17
打赏
举报
回复
FIFO
来自北方的闯哥
2010-09-17
打赏
举报
回复
参数相当于一个数组,每次执行shift,数据就会从右至左减1
freetstar
2010-09-17
打赏
举报
回复
[Quote=引用 5 楼 steptodream 的回复:]
引用 4 楼 l_thread 的回复:
--)
-a)
*)
这个不理解
这不就是case的条件吗 哪个不理解?
--) 匹配--
-a) 匹配-a
*) 相当于别的语言的条件分支的default
[/Quote]
我也来参加了,主席V5
这些就是匹配条件的
steptodream
2010-09-17
打赏
举报
回复
[Quote=引用 4 楼 l_thread 的回复:]
--)
-a)
*)
这个不理解
[/Quote]
这不就是case的条件吗 哪个不理解?
--) 匹配--
-a) 匹配-a
*) 相当于别的语言的条件分支的default
L_thread
2010-09-17
打赏
举报
回复
--)
-a)
*)
这个不理解
justkk
2010-09-17
打赏
举报
回复
哈哈,一会就走
主席再见..
steptodream
2010-09-17
打赏
举报
回复
[Quote=引用 1 楼 justkk 的回复:]
shift就是用掉一个位置参数,那么原来的$2就变成现在的$1了
看下面这个例子,脚本中只使用$1,但是能显示所有的命令行参数
while [ $# -ne 0 ]
do
echo $1
shift
done
[/Quote]
恩 怎么还不去吃饭 把这个问题留给我
justkk
2010-09-17
打赏
举报
回复
shift就是用掉一个位置参数,那么原来的$2就变成现在的$1了
看下面这个例子,脚本中只使用$1,但是能显示所有的命令行参数
while [ $# -ne 0 ]
do
echo $1
shift
done
Shell
数组详解:初始化、遍历、关联数组及避坑指南
在
Shell
脚本中,数组是一种将多个值组织到同一变量名下的基础数据结构,从索引数组到关联数组,它们通过“下标”或“键”来定位元素,支撑起批量文件处理、日志统计等场景。理解${arr[@]}与${arr[*]}的展开差异、掌握mapfile与IFS的配合技巧,能帮助开发者有效规避空格拆分、子
shell
变量丢失等常见
问题
。基于Linux和bash环境的工程实践中,数组常与for循环、grep命令和
shift
参数解析协同工作,在系统运维与自动化部署
里
显著提升脚本的可读性与健壮性。本文系统梳理
Shell
数组的初始化
Shell
编程中
Shift
的用法
若用户要求
Shell
在不知道位置变量个数的情况下,还能逐个的把参数一一处理,也就是在 $1 后为 $2,在 $2 后面为 $3 等。在
shift
命令执行前变量 $1 的值在
shift
命令执行后就不可用了。
Shift
命令还有另外一个重要用途, Bsh 定义了9个位置变量,从 $1 到 $9,这并不意味着用户在命令行只能使用9个参数,借助
shift
命令可以访问多于9个的参数。比如
shift
3表示原来的$4现在变成$1,原来的$5现在变成$2等等,原来的$1,$2,-丢弃,$ 0 不移动。
shell
脚本中
shift
的用法
用法解释:
shift
命令用于对参数的移动(左移),通常用于在不知道传入参数个数的情况下依次遍历每个参数然后进行相应处理(常见于Linux中各种程序的启动脚本)。 示例1:依次读取输入的参数并打印参数个数: 从上可知
shift
(
shift
1) 命令每执行一次,变量的个数($#)减一(之前的$1变量被销毁,之后的$2就变成了$1),而变量值提前一位。 同理,
shift
n后,前n位参数都会被销毁,例如示例2 示例2 运行结果: 示例3: 命令行参数处理 ./imx6mksdboot.sh -dev
Bash
Shell
中
Shift
用法分享
这篇文章主要介绍了Bash
Shell
中
Shift
的使用方法,需要的朋友可以参考下。
shift
可以用来向左移动位置参数。
Shell
的名字 $0 第一个参数 $1 第二个参数 $2 第n个参数 $n 所有参数 $@ 或 $* 参数个数 $#
shift
默认是
shift
1 例子:cat
shift
.sh #----------------------------输出文字
Linux
shell
脚本中
shift
的用法说明
Linux
shell
脚本中
shift
的用法说明
shift
命令用于对参数的移动(左移)。 示例1:依次读取输入的参数并打印参数个数: run.sh: #!/bin/bash while [ $# != 0 ];do echo "第一个参数为:$1,参数个数为:$#"
shift
done 输入如下命令运行:run.sh a b c d e
Linux_Kernel
4,469
社区成员
17,458
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章