SHELL之SHELL脚本快速上手

1 SHELL脚本介绍

什么是shell脚本:就是各种命令的堆砌,从而组合成具有特定功能的“程序”

shell脚本一般为以 .sh 的文件,但这不代表 .sh 文件就是shell脚本或者不以 .sh 结尾文件就不是shell脚本。在这些脚本文件中,第一行会以形如 !# 开头的内容,而这一行也表明了这个文件是以何种方式执行的,如:

#!/bin/bash

这代表此文件执行时会调用 /bin/bash 来执行。其他常见脚本还有

#!/usr/bin/env python
#!/usr/bin/expect

2 shell脚本的执行

  • 通过脚本路径来执行
    • 需要脚本有x权限
    • ./XX.sh 参数…
    • /XX/YY/ZZ.sh 参数…
  • bash SCRIPTNAME
    • 在子shell中执行
    • bash FILE
    • bash -x FILE:调试shell脚本
    • 不需要文件有执行权限
  • source SCRIPTNAME**
    • 在当前shell中执行
    • source FILE
    • 一般用于配置类型的shell脚本
    • 不需要文件有执行权限

3 shell脚本的参数

  • $0:脚本名
  • 位置参数:$1$2$3
  • $@:所有参数:参数1 参数2 参数3 …
  • $*:所有参数:“参数1 参数2 参数3 …”
  • $?:上一个命令执行状态返回值
  • $#:参数的个数

4 shell函数

  • 格式:函数名(){函数体}
  • 调用:函数名 [参数] …
#!/bin/bash
#猜数字小游戏

guess_number(){
# 注意这里的$1和27行的$1意义并不相同
# 指传入函数中的第一个参数
t=$1
while :; do
	read -p "Input the number: " n
	if [ $n -gt $t ]; then
		echo "retype a smaller number"
	elif [ $n -lt $t ]; then
		echo "retype a bigger number"
	else
		echo "Right!!!"
		exit 0
	fi
done
}

if [ $# -eq 0 ]; then
	echo "请输入参数"
	exit 1
fi
# 注意这里的$1和7行的$1意义并不相同
# 指传入脚本中的第一个参数
guess_number $1 
发布了67 篇原创文章 · 获赞 2 · 访问量 1389

猜你喜欢

转载自blog.csdn.net/weixin_42511320/article/details/104997543