≡菜单

适用于新手的Shell脚本执行指南

:执行Shell脚本应该了解哪些基本基本知识?另外,当我执行我的shell脚本时,我得到“Permission denied”错误信息。我如何解决它?

回答:让我们回顾一下有关执行Shell脚本应了解的4个基本基本知识。

1.找到shell可执行文件,并将其命名为she-bang#!

标识安装外壳的完整路径。

$ which sh
/bin/sh

(or)

$ which ksh
$ which bash

一旦您’ve确定了shell可执行文件的位置,在shell脚本文件的第一行中将其命名为shebang(#!)。

$ vim helloworld.sh

#!/bin/sh
echo "Hello World!"

2.将执行权限分配给Shell脚本文件

如果你不这样做’没有脚本执行权限,您’ll get “Permission denied”错误消息如下所示。

$ ./helloworld.sh
bash: ./helloworld.sh: 没有权限

如下所示,使用chmod命令将执行权限分配给脚本文件。

$ chmod u+x helloworld.sh

如果要授予组和其他人的执行权限,请按以下所示进行操作。

$ chmod 755 helloworld.sh

注意: 您也可以将其作为自动过程进行。即,无论何时打开外壳脚本文件,这两个必需的东西—添加shebang并授予执行权限可以使用bash-support.vim插件自动完成。请参阅我们之前的文章 使用bash-support插件将Vim设为Bash-IDE 更多细节。

3.通过指定绝对或相对路径来执行脚本

您可以通过使用绝对路径或相对路径来执行Shell脚本。

通过指定绝对路径来执行脚本,如下所示。

$ /home/ramesh/scripts/helloworld.sh
Hello World!

通过指定相对路径来执行脚本,如下所示。

$ cd /home/ramesh/

$ ./scripts/helloworld.sh
Hello World!

(or)

$ cd /home/ramesh/scripts

$ ./helloworld.sh
Hello World!

4.像执行常规Linux命令一样执行脚本

您也可以在不指定完整路径,绝对路径或相对路径的情况下执行脚本。为此,将所有shell脚本所在的目录添加到PATH环境变量中,如下所示。

例如,将/ home / ramesh / scripts添加到PATH环境变量后,就可以从任何目录执行脚本了。

$ export PATH=$PATH:/home/ramesh/scripts

$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/ramesh/scripts

$ cd /go/to/anydirectory

$ helloworld.sh
Hello World!

如果您喜欢这篇文章,您可能还会喜欢..

  1. 50个Linux Sysadmin教程
  2. 50个最常用的Linux命令(包括示例)
  3. 排名前25位的最佳Linux性能监视和调试工具
  4. 妈妈,我找到了! – 15个实用的Linux Find命令示例
  5. Linux 101 Hacks第二版电子书 Linux 101黑客手册

Bash 101 Hacks书 Sed和Awk 101黑客手册 Nagios Core 3书 Vim 101黑客手册

{ 5 评论… 加一 }

  • 乌尔里希·希勒 2010年1月22日,上午3:44

    对新手来说,另一个有用的提示是恕我直言的调试选项,尤其是当您使用包含变量和字段的较长脚本时,尤其如此:
    -v表示详细
    -x为“在执行命令时打印命令及其参数”
    例如:bash -xv helloworld.sh
    sh -xv helloworld.sh
    csh -xv helloworld.sh
    ksh -xv helloworld.sh

  • 阿比拉什 2010年1月22日,上午10:26

    你好拉梅什,

    感谢您的指导。我们将期待脚本的下一个层次。.也请给我们一些基本的循环和分支。

  • 大so 2010年1月25日,下午1:28

    您可以将/ bin目录添加到家中,并将可执行文件放在此处,然后在任意位置键入命令的名称

  • 拉梅什·纳塔拉詹(Ramesh Natarajan) 2010年2月2日,上午1:52

    @乌尔里希

    感谢您对-v和-x的解释。对于新手来说,这绝对是一个不错的秘诀。

    @Abhilash,

    I’很高兴您喜欢这篇文章。谢谢你的建议。一世’还将写一些其他有关bash shell脚本基础知识的文章。

    @Oso,

    谢谢你的评论。

  • 丹尼斯 2012年7月11日,上午10:55

    您可以添加,而不是将/ bin目录添加到PATH环境变量中。 (点),表示‘current directory’因此,如果您有权限,则可以从任何地方运行任何脚本或可执行文件。但是那’s not safe.

发表评论