[笔记] Docker 安装脚本分析

最近在研究 wsl 上安装 Docker ,查了一些资料找到官网提供的安装脚本,感觉比较有意思所以拿来分析一波:

使用 curl 下载脚本

在介绍中有一个命令行用于下载该脚本:

curl -fsSL https://get.docker.com -o install-docker.sh
# -f/--fail 忽略报错,即发生错误时不报错
# -s 不显示下载进度条和报错信息
# -S 当使用 -s 模式时,-S 会在下载失败时会报错
# -L 当返回 30X 状态码时,跟随链接

安装命令 install-docker.sh

sh install-docker.sh --dry-run
# --dry-run 验证要执行的安装步骤而不实际执行脚本

在计算机领域中,--dry-run是一个常见的命令行参数或选项,用于执行模拟运行而不实际执行任何操作。它通常用于测试或验证操作的影响,以便在实际执行之前先了解结果。

当你在命令行中使用--dry-run选项时,系统会模拟执行命令或操作,显示将要执行的步骤和可能的结果,但不会真正执行这些步骤。这对于验证复杂的操作或检查潜在的问题非常有用,以便在实际操作之前进行调试或预览。

例如,假设你要删除一个目录及其所有子目录和文件,但你不确定删除操作是否会产生意外结果。你可以使用--dry-run选项运行删除命令,系统会显示将要删除的文件和目录列表,但不会实际删除它们。这样,你可以先检查列表,确保没有意外的文件将被删除,然后再决定是否执行真正的删除操作。

# 判断是否为 dry_run 模式
is_dry_run() {
	# 判断 DRY_RUN 变量是否存在,存在返回1,否则返回0
	[ -z $DRY_RUN ] && return 1 || return 0
}

具体调用逻辑:

if is_dry_run; then
	return
fi
# 判断变量是否存在
[[ -z $DRY_RUN ]] && echo 'exists' || echo 'not exists'
# -z 用于判断字符串长度是否为0 , 当变量未设置时,默认即为空字符串
# 如果变量不存在,设置为空字符串,相当于什么也没做
DRY_RUN=${DRY_RUN:-}
# 如果变量不存在,设置为字符串hello
DRY_RUN=${DRY_RUN:-hello}
# 删除变量
unset $DRY_RUN

脚本小练笔

#DRY_RUN=1
is_dry_run(){
    [ -z $DRY_RUN ] && return 1 || return 0
}
if is_dry_run; then
    echo success
else
    echo fail
fi

参考资料

设置脚本选项:

while [ $# -gt 0 ]; do
    case "$1" in
        --channel)
            CHANNEL="$2"
            shift
            ;;
        --dry-run)
            DRY_RUN=1
            ;;
        --mirror)
            mirror="$2"
            shift
            ;;
        --version)
            VERSION="${2#v}"
            shift
            ;;
        --*)
            echo "Illegal option $1"
            ;;
    esac
    shift $(( $# > 0 ? 1 : 0 ))
done
  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值