shell

本文详细介绍了Shell脚本中的变量使用,包括特殊变量、参数变量和字符串操作。还讲解了条件判断如-eq、-gt等以及if、case、for、while、until语句的用法,涵盖了流程控制的基本概念和实践应用。
摘要由CSDN通过智能技术生成
符号意义
$0获取当前执行的shell脚本文件名
$$获取执行shell脚本的进程号
$n获取当前执行的shell脚本的第n个参数值,n=1…9,当n为0时表示脚本的文件名,如果n大于9就要用大括号括起来${10}
$#获取当前shell命令行中参数的总个数
$?获取执行上一个指令的返回值(0为成功,非0为失败)

变量

a=tt  #如果有空格a = tt 表示比较
a='tt'
b="$a"  双引号可解析变量a

#查看变量:
#方式一: $变量名
#方式二: "$变量名"
#方式三: ${变量名}
#方式四:标准使用方式 "${变量名}"
#取消变量: unset 变量名

c=`ps`  或  c=$(ps)  可执行命令ls
${变量名:起始位置:截取长度}  字符串截取

#   ${变量名:-默认值}  变量a如果有内容,那么就输出a的变量值; 变量a如果没有内容,那么就输出默认的内容
#   ${变量名:=默认值}   如果变量没有定义,将默认值赋值给变量
#   ${变量名:+提示信息} 当脚本获取的参数时提示已经获取到参数
 a="$1"
 echo "您选择的套餐是: 套餐 ${a:-1}"
 echo "国家法定结婚年龄(男性)是 ${a:=22} 岁"
 echo "${a:+已经获取到第一位的参数}"

进阶

n1 -eq n2 相等
n1 -gt n2 大于
n1 -ge n2 大于等于
n1 -lt n2 小于
n1 -le n2 小于等于
n1 -ne n2 不等于
str1 == str2 str1和str2字符串内容一致
str1 != str2 str1和str2字符串内容不一致,!表示相反的意思
&&  ||

# 文件表达式
    -f 判断输入内容是否是一个文件
    -d 判断输入内容是否是一个目录
    -x 判断输入内容是否可执行
[ -x age.sh ] || echo "文件没有执行权限"
#计算表达式
	$(( 计算表达式 ))
	let 计算表达式
i=1
let i=i+7
echo $i


echo "file1.txt" > file.txt   #覆盖的方式输入到右侧文件中
echo "file1.txt" >> file.txt  #追加


# if语句的使用场景
if [ "$1" == "nan" ]
then
   echo "您的性别是 男"
elif [ "$1" == "nv" ]
then
   echo "您的性别是 女"
else
   echo "您的性别,我不知道"
fi

# case语句使用场景
case "$1" in                 
    "start")                 
        echo "服务启动中..."                  
        ;;                  
    "stop")                 
        echo "服务关闭中..."                  
        ;;                          
    "restart")                   
        echo "服务重启中..."             
        ;;                  
    *)                 
        echo "$0 脚本的使用方式: $0 [ start | stop | restart ]"      
        ;;                  
esac

# for语句的使用示例
for i in $(ls /root)
do
  echo "${i}"
done

# while的示例
a=1
while [ "${a}" -lt 5 ]
do
   echo "${a}"
   a=$((a+1))
done

# until的示例
a=1
until [ "${a}" -eq 5 ]
do
   echo "${a}"
   a=$((a+1))
done
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值