shell
来源:互联网 发布:北京和隆优化怎么样 编辑:程序博客网 时间:2024/05/13 11:35
http://wiki.ubuntu.org.cn/Shell%E7%BC%96%E7%A8%8B%E5%9F%BA%E7%A1%80
有时候变量名可能会和其它文字混淆,比如:
num=2echo "this is the $numnd"
上述脚本并不会输出"this is the 2nd"而是"this is the ";这是由于shell会去搜索变量numnd的值,而实际上这个变量此时并没有值。这时,我们可以用花括号来告诉shell要打印的是num变量:
num=2echo "this is the ${num}nd"
其输出结果为:this is the 2nd
注意花括号的位置:
num=2echo "this is the {$num}nd"
其输出结果为:this is the {2}nd
在向程序传递任何参数之前,程序会扩展通配符和变量。这里所谓的扩展是指程序会把通配符(比如*)替换成适当的文件名,把变量替换成变量值。我们可以使用引号来防止这种扩展,先来看一个例子,假设在当前目录下有两个jpg文件:mail.jpg和tux.jpg。
#!/bin/bashecho *.jpg
运行结果为:
mail.jpg tux.jpg
引号(单引号和双引号)可以防止通配符*的扩展:
#!/bin/bashecho "*.jpg"echo '*.jpg'
其运行结果为:
*.jpg*.jpg
其中单引号更严格一些,它可以防止任何变量扩展;而双引号可以防止通配符扩展但允许变量扩展:
#!/bin/bashecho $SHELLecho "$SHELL"echo '$SHELL'
运行结果为:
/bin/bash/bin/bash$SHELL
此外还有一种防止这种扩展的方法,即使用转义字符——反斜杆:\:
echo \*.jpgecho \$SHELL
输出结果为:
*.jpg$SHELL
http://hi.baidu.com/sunboy_2050/item/888e44e11b36b3bd2e140bcc
关于shell中的for循环用法很多,一直想总结一下,今天网上看到上一篇关于for循环用法的总结,感觉很全面,所以就转过来研究研究,嘿嘿...
1、 for((i=1;i<=10;i++));do echo $(expr $i \* 4);done
2、在shell中常用的是 for i in $(seq 10)
3、for i in `ls`
4、for i in ${arr[@]}
5、for i in $* ; do
6、for File in /proc/sys/net/ipv4/conf/*/accept_redirects; do
7、for i in f1 f2 f3 ;do
8、for i in *.txt
9、for i in $(ls *.txt)
for in语句与` `和$( )合用,利用` `或$( )的将多行合为一行的缺陷,实际是合为一个字符串数组
============ -_- ==============for num in $(seq 1 100)
10、LIST="rootfs usr data data2"
for d in $LIST; do
用for in语句自动对字符串按空格遍历的特性,对多个目录遍历
11、for i in {1..10}
12、for i in stringchar {1..10}
13、awk 'BEGIN{for(i=1; i<=10; i++) print i}'
注意:AWK中的for循环写法和C语言一样的
for((i=100001;i<=1000000;i++)); do echo $i; done >> tt
- shell
- shell
- shell
- shell
- shell
- Shell
- shell
- Shell
- shell
- shell
- SHELL
- Shell
- shell
- shell
- shell
- shell
- shell
- shell
- hdu 1325数据弱
- Java的String中的subString()方法
- 10人看了这些故事,4个没变,5个百万,还有一个?
- 陕西的饮食历史和特点
- oracle 新增数据库表、新增列名、修改列名
- shell
- 按字节截取含有中文汉字的字符串
- 数据库的一些概念
- IOS中使用ASIHTTPRequest类库时出现的问题解决
- 写给Git初学者的7个建议
- JBoss 系列四十三:jBPM5示例之 Error Event
- Android DownloadManager 的使用
- 给定一系列x轴的点坐标,例如 1,3,7,8,9,11这些坐标升序放在数组中,现在给一根绳子,长度为4,问绳子最多能覆盖的点数有多少,例如绳子放前面只能覆盖两个点,1,3,如果放后面能覆盖4个点。
- 适配iOS7开发