在bash中,如果循环在一个子shell中运行,那么在循环中对循环外面的变量的更改将在循环退出后不可见.像下面的例子: #!/bin/sh python run.py | while read line do echo $line let "var=var+1" done echo $var 最后面的echo输出的var仍然是1.原因是while循环位于管道中,这意味着在运行过程中,while循环实际是位于一个新的SHELL中的,while循环中的var变量和文件开头定义的var变量是
在bash有三中类型的循环结构表达方法:for,while,until.这里介绍常用的两种:for和while. for bash的for循环表达式和python的for循环表达式风格很像: for var in $(ls) do echo "$var"done 取值列表有很多种表达方式,可以结合各种命令比如 ls,cat,sed等等 也可以是各种迭代类型,比如: {1..100..2}: 1到100增量为2 {a..z}: a到z的字母 `seq 1 2 100`: 1到100增量为
转自:http://blog.csdn.net/guodongxiaren/article/details/43341769 总第8篇 本系列(玩转Bash脚本)更多文章,请访问:http://blog.csdn.net/column/details/wanbash.html 和其他语言一样Bash的循环结构中也有while语句. 基本结构 while 条件 do 循环体 done 和for语句一样,它的循环体同样是do…done结构.我们可以把while语句再折叠一下 while 条件;d
脚本地址 https://github.com/anliven/L-Shell/tree/master/Shell-Basics 示例脚本及注释 #!/bin/bash # for循环 for filename in t1 t2 t3 do touch $filename.txt echo "Create new file: $filename.txt" done for rmfile in *.txt; do rm $rmfile; echo "Delete $rmfile
示例脚本及注释 #!/bin/bash # for循环 for filename in t1 t2 t3 do touch $filename.txt echo "Create new file: $filename.txt" done for rmfile in *.txt; do rm $rmfile; echo "Delete $rmfile!"; done; # 写成一行的方式 for filelist in `ls /root` # 循环显示/root目录
1. if-else语句 #!/bin/bash #if ... fi 语句: if [ $a != $b ] then echo "a != b" fi #if ... else ... fi 语句: if [ $a == $b ] then echo "a is equal to b" else echo "a is not equal to b" fi #if ... elif ... else ... fi 语句: if [ $a ==
流程控制是改变程序运行顺序的指令. 4.1 if语句 4.1.1 单分支 if 条件表达式; then 命令 fi 示例: #!/bin/bash N=10 if [ $N -gt 5 ]; then echo yes fi # bash test.sh yes 4.1.2 双分支 if 条件表达式; then 命令 else 命令 fi 示例1: #!/bin/bash N=10 if [ $N -lt 5 ]; then echo yes else echo no fi # bash tes