shell

本文介绍了Shell脚本的基础知识,包括变量定义与使用、特殊变量的功能、运算符、循环结构、条件判断、文件判断等内容,并提供了实用的例子。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、变量定义
1、系统变量
$HOME、$PWD、$SHELL、$USER等
2、用户自定义变量
可以通过set命令查看环境变量列表,包括系统变量和用户自定义变量
3、定义变量
格式:变量=值
等号两侧不能有空格,变量名称一般习惯为大写(非必须),单引号和双引号有区别,双引号仅将空格脱意(空格往往表示命令的结束),单引号会将所有的特殊字符脱意
4、撤销变量
unset A
但是readonly B=2声明的静态变量B不能修改且不能unset
5、全局变量
export 变量名
把变量提升为全局环境变量,供其他shell程序使用
6、将命令的返回值赋给变量
A=`ls -la`反引号,运行里面的命令,并把结果返回给变量A
A=$(ls -la)等价于反引号
二、shell中的特殊变量
1、$? 表示上一条命令退出的状态(返回值,非输出值)

2、$$ 表示当前进程编号 
3、$0 表示当前脚本名称
4、$n 表示n位置的输入参数(n代表数字,n>=1)
5、$# 表示参数的个数,常用于循环
6、$*和$@都表示参数列表
$*和$@都表示传递给函数或脚本的所有参数,不被双引号""包含时,都以$1 $2 ...$n的形式输出所有参数,当它们被双引号""包含时,"$*"会将所有的参数作为一个整体,以"$1$2...$n"的形式输出参数;"$@"会将各个参数分开,以"$1""$2"..."$n"的形式输出所有参数
三、运算符
1、格式:expr m+n或$((m+n))
2、计算(2+3)*4
第一种方法,分步计算:
S=`expr 2 + 3`(注意空格)
expr $S \* 4
第二种方法,一步完成计算:
expr `expr 2 + 3` \* 4
echo `expr \`expr 2 + 3\` \* 4`或
$(((2+3)*4))
四、for循环
1、第一种
for N in 1 2 3
do echo $N
done或

for N in 1 2 3; do echo $N; done或
for N in {1..3}; do echo $N; done
2、第二种

for ((i=0; i<= 5; i++))

do
   echo "welcome $i times"

done或
for ((i=0; i<=5; i++)); do echo "welcome $i times"; done
五、while循环
1、第一种
while expression
do
command
...
done
2、第二种
i=1
while((i<=3))

do
  echo $i
  let i++
done
六、case语句
格式:
case $1 in
start)
   echo  "starting"
   ;;
 stop)
   echo "stoping"

   ;;

*)
   echo  "Usage: {start|stop}"
esac
六、read命令
从终端交互式获取输入参数
read -p(提示语句) -n(字符个数) -t(等待时间)
例子:read -p "please enter a number: "  n (n用来存储输入值)
七、if判断
if condition
then
  statements

elif condition
   then  statements
else
   statements
fi
八、判断语句
[ condition ](注意condition前后要有空格) 非空返回true,可使用$?验证(0为true,>1为false),空[]返回false
[ condition ] && echo OK || echo notok  条件满足,执行前面的语句,否则执行后面的语句。if和[之间也要有空格。
九、常用判断条件
= 字符串比较
-lt 小于
-le 小于等于
-eq 等于
-gt 大于
-ge 大于等于
-ne 不等于
十、文件判断
-r  有读的权限
-w  有写的权限
-x  有执行的权限
-f  文件存在并且是一个常规的文件
-s  文件存在且不为空
-d  文件存在并是一个目录
-b 文件存在并且是一个块设备
-L  文件存在并且是一个链接
十一、自定义函数

[function] funname[()]

{
   action;
   [return int;]
}

function start()  / function start /start()
注意:必须在调用函数之前,先定义函数,函数的返回值只能通过$?系统变量获得,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值。return后跟数值n(0-255)
脚本调试:
sh -vx  xxx.sh(会把脚本执行过程的每一步的状态展示出来)
或者在脚本中增加set -x 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值