什么是shell脚本?
1、shell和shell脚本的概念
shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。(Ken Thompson的sh是第一种Unix Shell,Windows Explorer是一个典型的图形界面Shell。)
shell脚本(shell script),是一种为shell编写的脚本程序。
2、shell脚本
如何编写?
示例
#!/bin/sh cd ~ mkdir shell_tut cd shell_tut for ((i=0; i<10; i++)); do touch test_$i.txt done
示例解释
1、第一行:#!/bin/sh(“#!”是一个约定的标记,指定脚本解释器,这里是用/bin/sh,同样“#!/bin/bash”、"#!/usr/bin/php");
2、第二行:切换到当前用户的home目录;
3、第三行:创建一个名为“shell_tut”的目录;
4、第四行:切换到shell_tut目录;
5、第五行:循环条件,一共循环10次;
6、第六行:创建一个test_0...9.txt文件;
7、第七行:循环体结束;
注:mkdir, touch都是系统自带的程序,一般在/bin或者/usr/bin目录下。for, do, done是sh脚本语言的关键字。^(* ̄(oo) ̄)^
如何运行?
方法一:作为可执行程序
chmod +x test.sh ./test.sh
chmod +x test.sh :在原有权限基础上,增加“可执行(execute)权限”;
./test.sh :告知系统,就在当前目录找;(假设直接执行test.sh,linux系统会去PATH(/bin, /sbin, /usr/bin, /usr/sbin)里寻找有没有叫test.sh的)
方法二:作为解释器参数
/bin/sh test.sh
3、shell变量
像大多数程序设计语言一样,shell也允许用户在程序中使用变量。但shell不支持数据类型,它将任何变量值都当做字符串。
shell变量(赋值形式不同)分为四种形式:用户自定义变量、环境变量、位置变量和预定义特殊变量。
用户自定义变量
示例一: for skill in Ada Coffe Action Java; do echo "I am good at ${skill}Script" done
输出一:
I am good at AdaScript
I am good at CoffeeScript
I am good at ActionScript
I am good at JavaScript
示例二(unset:清除变量值): Today=1024 echo $Today unset Today echo $Today 输出二: 1024 注:变量名和等号之间不能有空格;
示例三(read): #!/bin/sh num=10 echo "num=$num" echo "input num:" read num echo "num=$num" 输出三: num=10 input num: 12 num=12
环境变量
1、如何查看环境变量? xxx@xxx$ env 2、xxx.sh #!/bin/bash export DATA=200 3、子shell:./xxx.sh;整体环境变量:source xxx.sh;
参考文献:
https://github.com/qinjx/30min_guides/blob/master/shell.md
https://blog.csdn.net/weixin_43288201/article/details/105643692
https://101.lug.ustc.edu.cn/Ch06/#bash-environment-variables

浙公网安备 33010602011771号