Shell(bash)脚本入门

依旧摘自阮大佬的Bash教程,这里仅做个人学习记录。

脚本参数

script.sh word1 word2 word3

上面例子中,script.sh是一个脚本文件,word1、word2和word3是三个参数。

脚本文件内部,可以使用特殊变量,引用这些参数:

  • $0:脚本文件名,即script.sh
  • $#:参数的数量
  • $1~$9:对应脚本的第一个参数到第九个参数
  • $@:全部的参数,参数之间使用空格分隔
  • $*:全部的参数,参数之间使用变量$IFS值的第一个字符分隔,默认为空格,但是可以自定义。

如果脚本的参数多于9个,那么第10个参数可以用${10}的形式引用,以此类推。

下面是一个脚本内部读取命令行参数的例子:

#!/bin/bash
# script.sh

echo "全部参数:" $@
echo "命令行参数数量:" $#
echo '$0 = ' $0
echo '$1 = ' $1
echo '$2 = ' $2
echo '$3 = ' $3

执行结果如下:

$ ./script.sh a b c
全部参数:a b c
命令行参数数量:3
$0 =  script.sh
$1 =  a
$2 =  b
$3 =  c

注释

Bash 脚本中,#表示注释,可以放在行首,也可以放在行尾。
建议在脚本开头,使用注释说明当前脚本的作用,这样有利于日后的维护。

命令执行结果

命令执行结束后,会有一个返回值。
0表示执行成功,非0(通常是1)表示执行失败。
环境变量$?可以读取前一个命令的返回值。

利用这一点,可以在脚本中对命令执行结果进行判断:

cd $some_directory
if [ "$?" = "0" ]; then
  rm *
else
  echo "无法切换目录!" 1>&2
  exit 1
fi

注:fi为if语句的结束,相当于end

source 命令

加载配置文件

source命令用于执行一个脚本,通常用于重新加载一个配置文件:source .bashrc

source命令最大的特点是在当前 Shell 执行脚本,不像直接执行脚本时,会新建一个子 Shell。所以,source命令执行脚本时,不需要export变量。

加载外部库

source命令的另一个用途,是在脚本内部加载外部库

#!/bin/bash

source ./lib.sh

function_from_lib

source有一个简写形式,可以使用一个点.来表示:

在这里插入图片描述
注意:这两个点之间是有空格的!

执行权限和路径

(待续~)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值