什么是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

 

posted @ 2026-01-27 19:15  沙特西  阅读(4)  评论(0)    收藏  举报