bash – 使用{$var}在for循环中进行变量替换
发布时间:2020-12-16 01:07:06 所属栏目:安全 来源:网络整理
导读:我是新手来编写脚本,我正在尝试通过制作这个简单要求一系列数字的小脚本来练习.我会输入前. 5..20它应该打印范围,但是它只是回显我输入的内容(在这个例子中为“5..20”)并且不扩展变量.有人能告诉我我做错了什么吗? 脚本: echo -n "Enter range of number
我是新手来编写脚本,我正在尝试通过制作这个简单要求一系列数字的小脚本来练习.我会输入前. 5..20它应该打印范围,但是它只是回显我输入的内容(在这个例子中为“5..20”)并且不扩展变量.有人能告诉我我做错了什么吗?
脚本: echo -n "Enter range of number to display using 0..10 format: " read range function func_printrage { for n in {$range}; do echo $n done } func_printrange
> bash中的brace扩展不会扩展参数(与zsh不同)
>你可以通过使用eval和命令替换来解决这个问题$() > eval是邪恶的,因为你需要消毒你的输入,否则人们可以输入rm -rf /等范围;并且eval会运行它 >不要使用function关键字,它不是POSIX而已被弃用 >使用read的-p标志而不是echo 但是,出于学习目的,您可以这样做: read -p "Enter range of number to display using 0..10 format: " range func_printrange() { for n in $(eval echo {$range}); do echo $n done } func_printrange 注意:在这种情况下,使用eval是正常的,因为您只是回显范围 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- twitter-bootstrap – Bootstrap 3.x:点击模态触发器后如何
- bootstrap table处理含有子集json的数据以及fastjson禁止循
- jaxws-webservice编程4
- 为什么用提取器替换我的Scala案例类会破坏我的高阶函数?
- Axis2.x WebService开发
- WebServices:WSDL的结构分析
- You need to install a terminal library; for example ncu
- 解决Webservice第一次访问特别慢的问题
- Bootstrap学习总结笔记(22)-- 基本插件之折叠
- 使用lsof工具查看打开的文件和socket