用于 shell 脚本源文件扩展名的官方标准/约定

Mat*_*ski 16 shell standard conventions shell-script

我想知道是否有关于您想要源而不是运行的 shell 脚本的文件类型扩展名的约定。例如:

  1. 如果我想在子shell中运行这个脚本。

     ./script.sh 
    
    Run Code Online (Sandbox Code Playgroud)
  2. 如果我想记住从当前 shell 运行这个脚本。

     . script.source 
    
    Run Code Online (Sandbox Code Playgroud)

是否有一个惯例在第2例的文件类型(如POSIX例如)?像.source.sourceme


更新

这个问题不询问任何意见。我明确表示我想知道这种脚本是否有标准化的文件扩展名。这个问题甚至比这个关于类似问题的广受欢迎的问题更不基于意见(对 bash 脚本使用 .sh 或 .bash 扩展名?)。

Sté*_*las 18

我会使用.sh(对于 POSIXsh语言中的文件,.bash对于非 sh 兼容的bash文件,即扩展名标识脚本所用的语言)用于要获取的文件(或更通常不打算执行),并且没有要执行的文件的扩展名。

您还可以添加:

#! /bin/echo Please-source
Run Code Online (Sandbox Code Playgroud)

she-bang,所以当被错误执行时(虽然我希望这些文件不应该被授予执行权限,这已经阻止了执行),你会收到一个通知,它应该是来源。