shell

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


提示:以下是本篇文章正文内容,下面案例可供参考

一、shell是什么?

shell就是用户和操作系统间的命令解释器

脚本就是由linux命令组成的文件

二、基础

1.变量

1. 自定义变量
定义变量:变量名 = 变量值 变量名必须以字母或下划线开头,区分大小写 ip1=192.168.2.115
引用变量: $ 变量名 或 ${ 变量名 }
查看变量: echo $ 变量名 set( 所有变量:包括自定义变量和环境变量 )
取消变量: unset 变量名
作用范围:仅在当前 shell 中有效
2. 环境变量
定义环境变量:
back_dir1=/home/backup
export back_dir1 将自定义变量转换成环境变量
引用环境变量: $ 变量名 或 ${ 变量名 }
查看环境变量: echo $ 变量名 env 例如 env |grep back_dir2
取消环境变量: unset 变量名
变量作用范围: 在当前 shell 和子 shell 有效
3位置变量
$1,$2,$3,$4,$5,$6,$7,$8,$9,$(10)
命令行参数对应位置的内容
4预定变量
$0 脚本名
$* 所有的参数
$@ 所有的参数
$# 参数的个数
$$ 当前进程的 PID
$! 上一个后台进程的 PID
$? 上一个命令的返回值 0 表示成功

变量赋值

变量名=变量值
read -t 5 -n 2  -p " 提示信息 : " 变量名
-t 超过时间退出
-n 变量长度
-p 提示信息
单引号' '    引号视内为普通字符
双引号" "   除了$,',"保留特殊功能,其他为普通字符
反引号` `   内容视为  shell命令
反斜线:转义字符

变量的作用域

全局变量:在整个shell脚本中有效

局部变量:在单个程序中有效

变量运算符

+,-加法,减法
*,/,%乘,除,余
**幂运算
++,--自加加,减减
!,&&,||非,与,或
<,<=,>,>=比较符
==,!=,=比较符
<<,>>向左位移,向右位移
~,|,&,^按位取反,按位异或,按位与,按位或
=,+=,-+,*=,%=a+=1   等于 a=a+

变量子串

${content}返回content内容
${#content}返回content长度
${content:word}从word开始提取字符到结尾
${content:word:length}从word开始提取长度为length的字符
${content#word}从word开头删除最短word字符串
${content##word}从word开头删除最长word字符串
${content%word}从word结尾删除最短word字符串
${content%%word}从word结尾删除最长word字符串
${content/word/word2}使用word2代替第一个word
${content//word/word2}使用word2代替所有的word

条件测试

test< 表达式 >

[ 表达式 ]

[[ 表达式 ]]

((表达式))

-d 目录存在且为真,成立

-f 文件存在且为真,普通文件,成立

-r 可读

-w 可写

-x 可执行

-s 文件大小不为0

-z "字符串"   字符串不为0,则为真

[]中使用[[]] (())中使用
-eq=
-ne!=
-gt>
-ge>=
-lt<
-le<
-a&&
-o||
!!

2.语句

if语句

单分支结构
  if <表达式>
  then
         指令
  fi
双分支语句                                                        
  if <表达式>                                                        if [ $grade -gt 80 ]
  then                                                                   then
        指令                                                              echo "A"                                                            
  else                                                                   elif [ $grade -gt 60 ]
       指令                                                               then
    fi                                                                           echo "b"
                                                                            else
                                                                                echo "c"
                                                                              fi
多分支语句
  if <表达式>
  then
        指令
  elif
       指令
  else
       指令       
  fi

  case语句

  case 变量名 in
  值1)
     指令1
  ;;
  值2)
      指令2
  ;;
  值3)
     指令3
  ;;
  *)
     指令
  esac

for循环

for variable in {list}              variable 循环变量   list  列表
do
statement1
statement2
...
done

3.函数

function 函数名 () {
指令
return
}
简写:
function 函数名 {
指令
return
}

数组

array=(value1 value2 value3...)

array=([1]=x [2]=y [3]=z) 

array[1]=a;array[2]=b;array[3]=c

array=(`命令`)


总结


以上就是今天要讲的内容,本文仅仅简单介绍了shell的学习

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值