一:循环控制
while循环语法实例(一)
1 2 3 4 5 6 7 8 9 10 11 |
#!/bin/bash #txt.sh num=3 while [ $num -gt 0 ]; do echo $num num=$(($num-1)) done |
while循环语法实例 (二)
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#!/bin/bash #txt.sh i=0 while [ $i -lt 10 ]; do echo $i i=$(($i+1)) sleep 1 #每隔一秒输出一次 done |
for in 循环控制(实例:1)
1 2 3 4 5 6 7 8 9 10 11 12 |
#!/bin/bash #txt.sh for i in user1 user2 user3 do echo $i done #输出结果为user1 user2 user3 #理解方法:就是将in右边的值,依次赋给i这个变量,并且将其输出,for in即javascript中的遍例方法 |
for in 循环控制(实例:2)
假设:有一个user.txt文件中的内容如下:
user1
user2
user3
user4
以下代码可以连续创建以上用户,并且将用户登录密码设置为123
1 2 3 4 5 6 7 8 9 10 11 12 |
#!/bin/bash #txt.sh for i in `cat user.txt` do echo $i useradd $i echo 123|passwd --stdin $i #将密码123这个值,管道输入到--stdin这个站位符中,给$i这个用户设置密码 done |
for循环控制(语法)
1 2 3 4 5 6 |
#!/bin/bash #txt.sh for (( i = 0; i < 10; i++ )); do echo $i done |
实例:(将user1-10的用户都删除)
1 2 3 4 5 6 |
#!/bin/bash #txt.sh for (( i = 0; i < 10; i++ )); do userdel -r user$i done |
实例:continue与break
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#!/bin/bash #txt.sh for (( i = 0; i < 10; i++ )); do if [ $i -eq 5 ]; then continue #同理break fi echo $i done |
二:函数把控
shell函数的基本语法如下:
1 2 3 4 5 6 7 8 9 10 11 |
#!/bin/bash #txt.sh function add(){ echo 123121111111111111 } add #add调用该函数 #函数的调用不能写成add()只能写成add |
函数传参实例:(传入参数3,计算1+2+3累加的值)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#!/bin/bash #txt.sh function add(){ num=$1 tot=0 for (( i = 0; i <= num; i++ )); do tot=$(($tot+$i)) done echo $tot } add 3 #注:shell传参不是add($num1,$num2)的形式 而是(add 值 )这种形式 |
多个参数传参实例如下(功能实现:参数值相加):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#!/bin/bash #txt.sh function add(){ num1=$1 num2=$2 #$1代表接收到的第一个参数,同理$2代表接收到的第二个参数 tot=$(($num1+$num2)) echo $tot #输出7 } add 3 4 |
以上代码也可以写成如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
function add(){ tot=$(($num1+$num2)) echo $tot #输出7 } num1=3 num2=4 add num1 num2 #完成的功能和上面那段代码的功能是一模一样的 |
以上算是总结完了正确的语法,以下是个人总结的错误实例,望看到这篇文章的有缘人能够不犯和我一样傻的问题
错误实例如下:(这段代码执行是有误的)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#!/bin/bash #txt.sh function add(){ num1=$1 num2=$2 tot=$(($num1+$num2)) echo $tot } num1=3 num2=4 add num1 num2 |
文章结尾还是要吐槽一下shell的语法,它是我见过所有编程语言中最让人恶心,主要在于它的语法,没有统一规范,初学者看着文档,写100行的shell代码,是不可能不报错的
© 著作权归作者所有
文章评论(0)