【Linux】shell简介

一、什么是shell

  Shell 是一种命令行解释器,可以执行用户输入的命令和脚本,是操作系统与用户之间的接口。在 Unix 系统中,常见的 Shell 包括Sh、Bash、Zsh、Ksh 等等。在 Linux 系统中,Bash 是最常用的 Shell,也是默认的 Shell。
  Shell 也是一种脚本语言,可以用来编写脚本文件(也称为 Shell 脚本),实现批量执行一系列命令、程序或其他脚本。Shell 脚本通常以 .sh 为扩展名。

#!/bin/bash

# 获取输入的目录路径
read -p "请输入目录路径:" dir_path

# 检查目录是否存在
if [ ! -d "$dir_path" ]; then
  echo "目录不存在!"
  exit 1
fi

# 列出目录下所有的文件和子目录
file_count=0
dir_count=0
for item in "$dir_path"/*; do
  if [ -f "$item" ]; then
    echo "文件:$item"
    ((file_count++))
  elif [ -d "$item" ]; then
    echo "目录:$item"
    ((dir_count++))
  fi
done

# 统计文件和目录的数量
echo "目录 $dir_path 中共有 $file_count 个文件和 $dir_count 个子目录。"

上述代码第一行 #!/bin/bash 是一个特殊的注释,称为 Shebang 或 Hashbang,用于指定脚本的解释器。在这个例子中,#!/bin/bash 表示该脚本需要使用 Bash 解释器来执行。

在直接调用脚本时,系统的程序载入器会分析 Shebang 后的内容,并根据其中的 Shebang 注释来确定使用哪个程序或解释器来执行脚本。在这个例子中,操作系统会使用 Bash 解释器来执行该脚本。

需要注意的是,Shebang 注释是可选的,如果不指定,操作系统会默认使用当前用户的默认 Shell 解释器来执行脚本。但是,为了保证脚本的可移植性和可维护性,建议在脚本文件中始终添加 Shebang 注释。并且,Shebang 注释必须放在脚本文件的第一行,否则将被忽略。

参考链接:Shell脚本中的shebang到底是什么

二、 shell脚本执行方式

执行 Shell 脚本的方式有以下几种:

  1. 在终端中直接执行脚本文件:直接输入脚本文件的路径,按下回车键即可执行脚本。例如,./script.sh。需要注意的是,脚本文件必须具有执行权限。
  2. 使用 bash 命令执行脚本文件:在终端中输入 bash 命令,后面跟上脚本文件的路径,按下回车键即可执行脚本。例如,bash script.sh
  3. 使用 sh 命令执行脚本文件:在终端中输入 sh 命令,后面跟上脚本文件的路径,按下回车键即可执行脚本。例如,sh script.sh。需要注意的是,使用 sh 命令执行脚本时,可能会因为不同的 Shell 解释器版本或者不同的系统环境导致脚本执行结果不同。
  4. 使用 source 命令运行脚本:在终端中输入 source. 命令,后面跟上脚本文件的路径,按下回车键即可运行脚本。例如,source script.sh. script.sh。使用 source 命令运行脚本时,脚本中定义的变量和函数会在当前 Shell 环境中生效。

这些方式的区别在于执行脚本时所使用的解释器不同,可能会导致脚本的执行结果不同。例如,使用 bash 命令执行脚本时,会使用 Bash 解释器来执行脚本;而使用 sh 命令执行脚本时,则可能会使用系统中默认的 Shell 解释器来执行脚本。此外,使用 source 命令运行脚本时,脚本中定义的变量和函数会在当前 Shell 环境中生效,而其他方式则不会。

参考链接:

  1. Linux 下的source命令学习
  2. 执行 shell 脚本时,「source」、「. 」和「./」的区别

你可能感兴趣的:(LINUX,linux,bash,unix)