linux shell的一些技巧(一)使用{X..Y}以及${!XXX}
来源:互联网 发布:vb.net asp网站实例 编辑:程序博客网 时间:2024/06/03 17:20
1、{start..end..step}
跟$(seq start end)功能一样,生成从start至end的序列,闭合区间。
step默认为1。
for i in {1..5}; do echo $i; done
>>> 1 2 3 4 5
可以在前面增加前缀,很方便的,如果使用$(seq ...)的话,达不到这种效果
for i in 6{1..5}; do echo $i; done
>>> 61 62 63 64 65
for i in 6$(seq 1 5); do echo $i; done
>>> 61 2 3 4 5 # 只跟第一个元素结合了~~
2、${!arr[@]}
用于返回数组array的所有下标
arr=(h0 h1 h2 h3)
for i in ${!arr[@]}; do echo $i; done
>>> 0 1 2 3
arr[10]=h10
for i in ${!arr[@]}; do echo $i; done
>>> 0 1 2 3 10
初始化数组arr时,数组下标是从0开始递增的,所以这里直接对arr[10]进行赋值,以空缺中间的下标,打印其下标如上。
3、${!var@}
用于返回当前shell中,变量名以var开始的变量;这种格式跟第2种很相似,可是功能却完全不同。
var1=hello1
var2=hello2
echo ${!var@}
>>> var1 var2
var=hello
echo ${!var@}
>>> var var1 var2
变量的输出,不是以定义的先后为顺序的,这一点需要注意。
4、${!var}
用于返回以var变量的值命名的变量的值,这话很难理解,其实有些类似C里面的指针,看代码就明白了。
tmp_path=/tmp
path=tmp_path
echo ${!path}
>>> /tmp
shell先将path解析出来,得到tmp_path,再取tmp_path的值,所以得到结果/tmp。
使用eval的方法稍显麻烦:
eval echo \$$path
>>> /tmp
0 0
- linux shell的一些技巧(一)使用{X..Y}以及${!XXX}
- linux shell的一些技巧(一)使用{X..Y}以及${!XXX}
- linux shell 学习时遇到的一些问题([: 11: y: unexpected operator)
- shell使用技巧(一)
- shell的一些基本命令(使用的小技巧)
- Python Shell的一些使用技巧
- CxImage类的SetPixelColor(y,x,color)和GetPixelColor(y,x)方法的使用
- 一些Mac OS X的使用技巧
- Linux的一些使用技巧
- Linux使用的一些技巧
- Shell的一些技巧
- Linux----shell使用技巧
- Linux Shell常用技巧(一)
- Linux Shell常用技巧(一)
- Linux Shell高级技巧(一)
- Linux Shell常用技巧(一)
- Linux Shell常用技巧(一)
- Linux Shell高级技巧(一)
- Maximum Gap
- 10个帮程序员减压放松的网站!
- 黑马程序员--学习日志4--JAVA循环体语句和控制跳转语句
- Leetcode Happy Number
- BNUOJ 1010 Deli Deli
- linux shell的一些技巧(一)使用{X..Y}以及${!XXX}
- XSLFO BLOCK
- (9-4)词库分词
- c++程序设计——实验2
- Servlet自学第16讲:HttpServletResponse对象详解
- java 线程(二)
- Android Bound Service(二) ----- Using AIDL
- Windows 驱动开发 - 1
- c++程序设计——实验1