shell入门

博文基于尚硅谷高级技术之shell,视频地址3天搞定Linux,1天搞定Shell,清华学神带你通关

shell概述

命令解释器,接收应用程序/用户命令,调用系统内核。

Linux提供的shell

Ubuntu20.04下

image.png

默认的shell

最常用的还是bash,可通过查看SHELL环境变量,查看默认的shell

imagec3b8bbf468471180.png

shell入门

格式

  • #!/bin/bash 开头(指定解析器)

执行

  • 第一种:采用 bashsh加脚本的相对路径或绝对路径(不用赋予脚本+x 权限),本质是 bash 解析器帮你执行脚本。
  • 第二种:采用输入脚本的绝对路径或相对路径执行脚本(必须具有可执行权限+x),本质是脚本需要自己执行。
  • 第三种:在脚本的路径前加上“.”或者 source(不用赋予脚本+x 权限),读取脚本文件并将其内容直接导入到当前 shell 环境中运行

hello word脚本

#!/bin/bash
 
echo "Hello World!"

imagea05fc1b791f8493f.png

变量

系统变量

如PATH、SHELL、HOME等

自定义变量

  • 定义变量:变量名=变量值
  • 撤销变量:unset 变量名
  • 吊销变量:unset 变量
  • 静态变量
    • 说明:readonly 变量
    • 不能 unset
    • 作用域是整个程序、只读、生命周期与程序相同

说明

  • 用变量时,应该$变量

  • 显现当时 shell 中悉数变量:set

  • 变量名称可以由字母、数字和下划线组成,但是不能以数字开头,环境变量名建议大写。

  • 等号两侧不能有空格

  • 在 bash 中,变量默认类型都是字符串类型,无法直接进行数值运算。

  • 变量的值如果有空格,需要使用双引号或单引号括起来。

  • 可把变量提升为全局环境变量,可供其他 Shell 程序使用

案例

  • 声明和查看

image18ebea7067c76708.png

  • 修改值,是字符型,不能运算

imagef3ea6a80d88166f8.png

  • 有空格等应该用“”
  • 注销变量unset

image655da6c0ea6caa41.png

  • 静态变量(readonly)

imageea311156a5242419.png

  • 全局环境变量,可供其他 Shell 程序使用

image52f7966ecc390251.png

特殊变量

$n
  • $0 代表该脚本名称
  • n为数字,$1-$9 代表第一到第九个参数
  • 十以上的参数需要用大括号包含10,如${10}

案例:传入三个参数,输出

#!/bin/bash
echo "脚本名称:$0"
echo "第一个参数:$1"
echo "第二个参数: $2"

image931a2a859e28e0d3.png

$#
  • 获取所有输入参数个数,常用于循环,判断参数的个数是否正确以及加强脚本的健壮性

案例:返回参数个数

#!/bin/bash
echo "脚本名称:$0"
echo "第一个参数:$1"
echo "第二个参数: $2"
echo "参数个数:$#"

imagef3125a7cb9a9840e.png

$*、$@
  • $* 代表命令行中所有的参数,$*把所有的参数看成一个整体
  • $@ 代表命令行中所有的参数,不过$@把每个参数区分对待
  • 加上" "时,$*会将所有的参数作为一个整体,以“$1 $2 …$n”的形式输出所有参数;$@会将各个参数分开,以“$1” “$2”…“$n”的形式输出所有参数
    • for j in "$@",有多少个参数j就是几
    • for j in "$*",j永远是1

案例:

#!/bin/bash
echo $0
echo $1
echo $2
echo $#
echo $*
echo $@

image402e25b36c4f72a2.png

$?
  • 最后一次执行的命令的返回状态。
  • 如果这个变量的值为 0,证明上一个命令正确执行;如果这个变量的值为非 0,则证明上一个命令执行不正确了。
  • 可以用exit num返回自己设置的状态码

案例:

#!/bin/bash
  
#运行一个命令
echo "hel
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值