Linux--shell小总结

本文详细介绍Shell脚本的基础知识,包括shell环境、变量定义与使用、流程控制如分支和循环、运算符的应用、执行参数的传递及函数的创建与调用。适合初学者快速掌握Shell脚本编程。
1.shell环境

    Shell 脚本(shell script),是一种为 shell 编写的脚本程序。业界所说的 shell 通常都是指 shell 脚本,通常用的是 Bash,也就是 Bourne Again Shell,由于易用和免费,Bash 在日常工作中被广泛使用。同时,Bash 也是大多数Linux 系统默认的 Shell。
    在一般情况下,人们并不区分 Bourne Shell 和 Bourne Again Shell,所以,像 #!/bin/sh,它同样也可以改为 #!/bin/bash。
    #! 告诉系统其后路径所指定的程序即是解释此脚本文件的 Shell 程序。

#!/bin/bash


2.变量
  1. 命名
  • 不能有空格,等号前后都不能
  • 不能使用标点符号
  • 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头

  1. 定义
  • 命令用反引号
  • 引用变量用$,可加()或{},${数组名[下标]}
  • 只读变量readonly,删除变量unset
  • 字符串用单引号或双引号(单引号不识别变量与转义,原样输出)

  1. 输入
  • read -p 提示信息 变量名
#!/bin/bash
mystr="hello world!"
echo $mystr

datetime=`date +'%F %T'`
echo $datetime

read -p '提示:please input a num:' inputnum
echo 'your input: num = ' $inputnum



3.流程
  1. 分支
#单行
if [ $(ps -ef | grep -c "ssh") -gt 1 ]; then echo "true"; fi

#多行
if condition1
then
    command1
elif condition2 
then 
    command2
else
    commandN
fi
  1. 循环
#for
for var in item1 item2 ... itemN
do
    command1
    command2
    ...
    commandN
done

#while
while condition
do
    command
done


4.运算符
  1. 算数运算符
  • 条件表达式要放在方括号之间,并且要有空格,例如: [ a = = a== a==b] 是错误的,必须写成 [ $a == $b ]
  • 乘号(*)前边必须加反斜杠()才能实现乘法运算

  1. 关系运算符
  • 只支持数字,除非字符串是数字
  • -eq -neq -gt -lt -ge -le 等于 不等于 大于 小于 大于等于 小于等于

  1. 布尔运算符
  • 与或非 -a -o !
  • 逻辑运算符 AND && OR ||
  • 注意需要空格

  1. 字符串运算符
  • 等于 =
  • 不等于 !=
  • 长度是否为0 -z
  • 长度不为0 -n
  • 是否为空 $

  1. 文件运算符
  • 是否是目录 -d
  • 是否是文件 -f
  • 是否存在 -e
  • 是否为空 -s


5.执行参数
  • 向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数
echo "执行的文件名:$0";
echo "第一个参数为:$1";
echo "第二个参数为:$2";
echo "第三个参数为:$3";
  • 参考例子
#!/bin/bash
echo 'your args ' $0  $1 $2

if [ -e $1 ]
then
   if [ -f $1  ]
   then
       echo $1 '是文件'
       if [ -s $1 ]
       then
           echo '非空'
       fi
   fi
else
    echo $1 '不存在'
fi



6.函数
  • 直接调用
[ function ] funname [()]
{
    action;
    [return int;]
}


参考菜鸟教程

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值