🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
>[success] # shell -- 执行 ~~~ 1.将 Shell 脚本作为程序运行 2.将 Shell 脚本作为参数传递给 Bash 解释器 、sh 3.将 Shell 脚本使用source 执行 4.将Shell 脚本放入$PATH 中执行 ~~~ >[danger] ##### 执行前知道事 ~~~ 1.当执行node 程序的时候,我们一般在控制台执行的命令是'node 文件名' 2.Shell 既是一种脚本编程语言,也是一个连接内核和用户的软件。常见的 Shell 有 sh、bash、 csh、tcsh、ash 等 3.我们使用的shell 版本为bash。因此也可以'bash shell脚本文件' 4.shell 文件结尾最好是'.sh' ~~~ >[danger] ##### 编写一个shell 格式文件 ~~~ #!/bin/bash echo "Hello World !" #这是一条语句 ~~~ ~~~ 1.第 1 行的'#!'是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell;后面的'/bin/bash'就是指明了解释器的具体位置,如果写成'/bin/node' 则是使用bin文件 下node 解释器来解释,后面当然也可以是python等一类的其他语言 2.第一行的#!/bin/bash一定要写对,好让系统查找到正确的解释器 3.'#'及其后面的内容是注释。Shell 脚本中所有以'#'开头的都是注释(当然以`#!`开头的除外) ~~~ >[danger] ##### Shell 脚本作为程序运行 ~~~ 1.在没做特殊设置的情况下一般创建的文件最高权限'644' 没有可执行权限,也就是当我们创建 一个脚本文件,想要他可以直接执行需要'chmod +x 文件' 增加执行权限 2.当文件具有可执行权限的时候,执行脚本需要全路径,举个例子'/root/test.sh',如果现在非root 目录下想执行需要'/root/test.sh',当如果在'root' 目录下则需要'./test.sh'如果不写`./`会到系统路径 (由 PATH 环境变量指定)下查找 'test.sh',而系统路径下显然不存在这个脚本,所以会执行失败 ~~~ * 如图 ![](https://img.kancloud.cn/ec/d7/ecd775b73e2a5860b2e812978c14cbfd_375x116.png) >[danger] ##### Shell 脚本作为参数传递给 Bash 解释器、sh ~~~ 1.如果当前文件没有给予可执行权限,并且他是一个bash脚本,那么可以像运行node 程序那种 'bash 文件名' / 'sh 文件名' ~~~ * 如图 ![](https://img.kancloud.cn/ad/36/ad36814af6bd24edfa0c76d9f62cf62c_335x37.png) >[danger] ##### Shell 脚本使用source 执行 ~~~ 1.source 是 Shell 内置命令的一种,它会读取脚本文件中的代码,并依次执行所有语句。 你也可以理解为,source 命令会强制执行脚本文件中的全部命令,而忽略脚本文件的权限, 并且他是一个bash脚本'source 文件名' ~~~ * 如图 ![](https://img.kancloud.cn/48/bc/48bca5c411d73bef6e1baf2834aec666_380x41.png) >[danger] ##### Shell 脚本放入$PATH 中执行 ~~~ 1.执行$PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin 2.如果脚本文件在这些文件中并且'具备执行权限'就可以直接 '文件名调用' 3.简单的说如果想把一个自定义的脚本直接可以执行,或者把这个文件拷贝到目标目录下, 或者把脚本所在目录添加到环境变量中的PATH路径中 4.给$PATH 增加新的地址(关于export 可参考变量作用域章节) export PATH="$PATH":/root/shells ~~~ * 如图 ![](https://img.kancloud.cn/4d/a5/4da5b712d6c6214fef5c15cde803ccf4_486x71.png) >[info] ## 参考 [# 执行Shell脚本(多种方法)](http://www.beylze.cn/shell/698.html)