1.容器设置日志驱动程序 - docker --log-driver2.基于linux系统Docker中查看当前软件和版本信息3.避免Dockerfile生成的镜像文件过大 - apt-get install -y
4.Linux中,使用 ./ 和 sh 执行脚本的区别是什么
这些区别主要体现在执行环境、权限要求和子进程管理等方面
一.可执行权限(不一样)
- ./:
使用./script.sh
执行脚本时,脚本必须具有可执行权限。这意味着你需要先使用 chmod +x script.sh 命令来赋予脚本执行权限。
chmod +x script.sh ./script.sh
- sh:
使用sh script.sh
执行脚本时,不需要脚本具有可执行权限。只需确保脚本有读取权限即可。sh script.sh
二.脚本解释器(不一样)
- ./:
当使用./script.sh
时,脚本的第一行(如果存在)会指定解释器。例如,若脚本以#!/bin/bash
开头,则会使用Bash解释器来运行。如果没有指定解释器,系统将使用默认的Shell程序。- sh:
使用sh script.sh
明确指定了要使用Bourne Shell(或其兼容实现)来执行该脚本。即使脚本中指定了其他解释器(如Bash),也会被忽略。
三.子进程与当前Shell(不全一样)
- ./:
当使用./script.sh
执行时,Linux会在一个新的子进程中运行该脚本。这个子进程不会影响父Shell的环境变量和状态。- sh:
使用sh script.sh
时,同样会在一个新的子进程中执行该脚本。这个子进程继承父Shell的环境变量,但普通变量(未导出)不会被继承。
四.环境变量的影响(一样)
如果在脚本中设置了环境变量,这些变量在脚本结束后不会影响到当前Shell,因为它是在子进程中运行的。
总结(主观)
根据个人习惯选择
熟悉的环境用sh
,./
可以更多的发现暴露一些问题,适用于特殊环境
合集:
linux
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下