shell脚本入门

Shell脚本入门

#编写hell.sh文件  .sh文件第一行,约定
#!/bin/sh
echo "hello word"

#启动hello.sh
bash hell.sh

#若想直接 ./hello.sh启动 ,需要给hello.sh添加执行权限
chmod +x hello.sh

#不打开子shell
或者source hello.sh
后者. sh

#定义一个变量,注意:等号前后不能有空格
my_var='hello shell'
#上述定义的变量属于局部变量,若想成为全局变量,则要使用export关键字设置一下
export my_var
#在子shell中更改,不会影响父shell
bash
ps -f
#定义只读变量
readonly b=5
#定义数字
a=$((1+5))
a=$[2+5]

#撤销一个变量,注意:不能unset一个只读变量
unset a
#查看变量
set | less
#变量名可以由数字字母下划线组成,但是不能以数字开头,环境变量名称建议大写。

#启动一个sh文件,可以直接在当前文件./a.sh启动,获取将其放在/bin/a.sh目录下,就可以直接 输入a.sh启动了
#也可以通过更改环境变量,将存放sh文件的目录加入环境变量中,就可以直接a.sh启动了
echo $PATH
# 特殊变量 
# $n(功能描述:n为数字,$0代表该脚本名称,$1-9代表一到第九个参数,十以上的参数需要用大括号包含,如${10}  )
# $#(功能描述:获取所有输入参数的个数,常用于循环,判断参数的个数是否正确以及加强脚本的健壮性)
# $*(功能描述:代表命令行中的所有参数,$*把所有的参数看成一个整体)
# $@(功能描述:代表命令行中的所有参数,不过$@把每个参数区分对待)
# $?(功能描述:最后一次执行命令的返回状态。如果为0,证明上一个命令正确执行;如果非0,说明上一条命令不正确)

运算符

expr 1 + 2
3
expr 2 \* 4
8
#基本语法
$((2 * 5)) 或者 $[2 * 5]
#案例 计算(2+3)*4的值
sum=$[(2+3)*4]
encho $sum

条件判断

#基本语法
(1)test condition
eg:test $a = hello
(2)[ condition ]
#注意 condition前后必须要有空格
#数字比较 
= -eq
> -gq
< -lq
!= -ne
>= -ge
<= -le

#多条件判断
 && 表示上一条命令执行成功时,才执行后一条命令,|| 表示上一条命令失败之后,才执行下一条命令
eg:[ hello ] && echo ok || echo notOk 

流程控制

#if判断
#(1)单分支
if [ 条件表达式 ];then
  程序;
fi
#或者
if [ 条件表达式 ]
then 
  程序;
fi
#(2)多分支
if [ 条件表达式 ]
then
  程序
elif [ 条件表达式 ]
then 
  程序
else
  程序
fi

#case语句
#基本语法
case $变量名 in 
"值1")
  程序
;;
"值2")
  程序
;;
*)
  程序
;;
esac

#for循环
#(1)基本语法1
for ((初始值;循环控制条件;变量变化))
do
  程序
done

#(2)基本语法2
for 变量 in 值1 值2 值3...
do
  程序
done
#(3)比较$* 和 $@的区别
$*和$@都表示传递给函数或脚本的所有参数
#不被双引号“”包含时,都以$1 $2 …$n的形式输出所有参数;
#当它们被双引号“”包含时,$*会将所有的参数作为一个整体,以“$1 $2 …$n”的形式输出所有参数;$@会将各个参数分开,以“$1” “$2”…“$n”的形式输出所有参数。


#while循环
#基本语法
while [ 条件表达式 ]
do 
  程序
done

read读取控制台输入

read -t 10 -p "please enter your parameter:"NN
echo $NN 
#-t 后面是等待时间秒,-p 后面是给用户的提示
posted @ 2023-03-07 09:42  h*z  阅读(42)  评论(0编辑  收藏  举报