1.脚本执行的四种方式
第一种:bash test.sh 第二种:./test.sh 第三种:. test.sh 第四种:source test.sh 第一种和第二种都是开启一个子进程运行脚本但是第二种方式运行脚本的前提是脚本有可执行权限, 需执行命令chmod +x test.sh; 第三种和第四种都是在当前进程运行脚本。 [root@MiWiFi-R4-srv home]# ls dage he.txt hhhh liu.md liu.txt test.sh userdemo [root@MiWiFi-R4-srv home]# bash test.sh hello wolrd !!! [root@MiWiFi-R4-srv home]# . test.sh hello wolrd !!! [root@MiWiFi-R4-srv home]# source test.sh hello wolrd !!! [root@MiWiFi-R4-srv home]# ./test.sh bash: ./test.sh: 权限不够 [root@MiWiFi-R4-srv home]# sh test.sh hello wolrd !!! [root@MiWiFi-R4-srv home]#
2.编写脚本(1)就是执行的命令
[root@MiWiFi-R4-srv home]# vim test.sh #!/bin/bash echo "hello wolrd !!!"
3.变量的定义:可以随意定义,字符串,数字....
[root@MiWiFi-R4-srv home]# vim test.sh #!/bin/bash echo "hello wolrd !!!" name="张三" age=10 echo "这个人的信息:$name , $age" [root@MiWiFi-R4-srv home]# sh test.sh hello wolrd !!! 这个人的信息:张三 , 10
4.接收外部参数
[root@MiWiFi-R4-srv home]# vim test.sh #!/bin/bash # 这个是是一个数组 one=$1 # 普通字符串 two=$2 if [ $2 == "yes" ]; then echo "输入的是:$2" else echo "输入错误!!!退出!" # 退出脚本命令 exit 0 fi #执行数组循环 #for i in $1 ; do ssh host$1 /usr/uninstall.sh ;done for i in {1..10};do echo "输出参数:$i" ; done for i in $1; do echo "输出:$i"; done echo "hello wolrd !!!" name="张三" age=10 echo "这个人的信息:$name , $age" [root@MiWiFi-R4-srv home]# sh test.sh "1 2 3 " no 输入错误!!!退出! [root@MiWiFi-R4-srv home]# sh test.sh "1 2 3 " yes 输入的是:yes 输出参数:1 输出参数:2 输出参数:3 输出参数:4 输出参数:5 输出参数:6 输出参数:7 输出参数:8 输出参数:9 输出参数:10 输出:1 输出:2 输出:3 hello wolrd !!! 这个人的信息:张三 , 10
5. 函数的使用
[root@MiWiFi-R4-srv home]# vim demo.sh #!/bin/bash start(){ echo "启动函数..." } stop(){ echo "停止函数..." } # 函数调用 start stop [root@MiWiFi-R4-srv home]# sh demo.sh 启动函数... 停止函数...
6.函数的返回值
#!/bin/bash # 有返回值 numMax(){ return 1 } numMax # 取函数的返回值 echo $? [root@MiWiFi-R4-srv home]# sh demo.sh 1
7.命令行动态输入参数
#!/bin/bash FunReturn(){ echo "这个函数会对输入的两个数字进行相加运算..." echo "输入第一个数字: " read aNum echo "输入第二个数字: " read anotherNum echo "两个数字分别为 $aNum 和 $anotherNum !" return $(($aNum+$anotherNum)) } FunReturn echo "输入的两个数字之和为 $? !" [root@MiWiFi-R4-srv home]# sh demo.sh 这个函数会对输入的两个数字进行相加运算... 输入第一个数字: 2 输入第二个数字: 3 两个数字分别为 2 和 3 ! 输入的两个数字之和为 5 !
8.函数参数
#!/bin/bash funParam(){ echo "第一个参数为 $1 !" echo "第二个参数为 $2 !" echo "参数总数有 $# 个!" echo "作为一个字符串输出所有参数 $* !" } funParam 1 2 3 4 [root@MiWiFi-R4-srv home]# sh demo.sh 第一个参数为 1 ! 第二个参数为 2 ! 参数总数有 4 个! 作为一个字符串输出所有参数 1 2 3 4 !