如何在不使用";的情况下运行shell脚本;上海";或;bash“;命令?

如何在不使用";的情况下运行shell脚本;上海";或;bash“;命令?,bash,shell,alias,sh,Bash,Shell,Alias,Sh,我有一个shell脚本,我想在不使用“sh”或“bash”命令的情况下运行它。例如: 而不是:sh script.sh 我想使用:script.sh 我该怎么做 另外,我不怎么使用shell脚本,我试着阅读关于别名的文章,但我不知道如何使用它们 (ii)我还阅读了有关将脚本与路径变量中的另一个文件链接的内容。我正在使用我的大学服务器,我没有在这些位置创建文件的权限 只需确保它是可执行的,使用chmod+x。默认情况下,当前目录不在您的路径上,因此您需要将其作为/script.sh-执行,或者通过

我有一个shell脚本,我想在不使用“sh”或“bash”命令的情况下运行它。例如:

而不是:
sh script.sh

我想使用:
script.sh

我该怎么做

另外,我不怎么使用shell脚本,我试着阅读关于别名的文章,但我不知道如何使用它们


(ii)我还阅读了有关将脚本与路径变量中的另一个文件链接的内容。我正在使用我的大学服务器,我没有在这些位置创建文件的权限

只需确保它是可执行的,使用
chmod+x
。默认情况下,当前目录不在您的路径上,因此您需要将其作为
/script.sh
-执行,或者通过限定的路径引用它。或者,如果您确实只需要
script.sh
,则需要将其添加到路径中。(您可能无权修改系统路径,但几乎可以肯定地修改您自己当前环境的路径。)这还假设您的脚本以类似
#的内容开头/bin/sh

您还可以使用别名,该别名实际上与shell脚本无关,但仅与shell有关,其简单程度如下:

alias script.sh='sh script.sh'

这将允许您只使用
script.sh
(字面意思-这对任何其他
*.sh
文件都不起作用)而不是
sh script.sh

您必须为程序启用可执行位

chmod +x script.sh
然后可以使用
/script.sh

您可以将文件夹添加到
.bashrc
文件(位于主目录)的路径中。 将此行添加到文件末尾:

export PATH=$PATH:/your/folder/here
在文件顶部添加一个“shebang”:

#!/bin/bash
并使文件可执行(
chmod+xscript.sh

最后,修改路径以添加脚本所在的目录:

export PATH=$PATH:/appropriate/directory

(通常,您需要
$HOME/bin
来存储自己的脚本)

这些是直接使用脚本名称的先决条件:

  • 在最顶端添加shebang行(
    #!/bin/bash
  • 使用
    chmod u+x scriptname
    使脚本可执行(其中
    scriptname
    是脚本的名称)
  • 将脚本放在
    /usr/local/bin
    文件夹下。
    • 注意:我建议将其放在
      /usr/local/bin
      下,因为该路径很可能已经添加到
      path
      变量中
  • 仅使用脚本名称运行脚本,
    scriptname
  • 如果您无权访问
    /usr/local/bin
    ,请执行以下操作:

    sudo nano myShell
    
    echo Hello World!
    
  • 在主目录中创建一个文件夹,并将其命名为
    bin

  • 在您的主目录上执行
    ls-lA
    ,以识别您的shell正在使用的启动脚本。它应该是
    .profile
    .bashrc

  • 确定启动脚本后,添加以下行:

    PATH="$PATH:$HOME/bin"
    
  • 添加后,为启动脚本寻找源代码,或注销并重新登录

    要获取源代码,请在
    后面加一个空格,然后加上启动脚本名称,例如
    。配置文件
    。bashrc

  • 仅使用脚本名称运行脚本,
    scriptname

  • 加上。(当前目录)到您的路径变量。
    您可以通过编辑.profile文件来完成此操作。
    在.profile文件中放入以下行
    PATH=$PATH:。


    只需确保在脚本开头添加Shebang(
    #!/bin/bash
    )行,并使脚本可执行(使用
    chmod+x
    )。

    您可以键入sudo install(脚本名称)/usr/local/bin/(要键入什么来执行所述脚本)

    示例:
    sudo安装quickcommit.sh/usr/local/bin/quickcommit
    输入密码


    现在可以在没有.sh的情况下在任何目录下运行

    以下是我的备份脚本,它将为您提供想法和自动化:

    服务器:Ubuntu 16.04 PHP:7.0 Apache2、Mysql等

    # Make Shell Backup Script - Bash Backup Script
        nano /home/user/bash/backupscript.sh
            #!/bin/bash
            # Backup All Start
            mkdir /home/user/backup/$(date +"%Y-%m-%d")
            sudo zip -ry /home/user/backup/$(date +"%Y-%m-%d")/etc_rest.zip /etc -x "*apache2*" -x "*php*" -x "*mysql*"
            sudo zip -ry /home/user/backup/$(date +"%Y-%m-%d")/etc_apache2.zip /etc/apache2
            sudo zip -ry /home/user/backup/$(date +"%Y-%m-%d")/etc_php.zip /etc/php
            sudo zip -ry /home/user/backup/$(date +"%Y-%m-%d")/etc_mysql.zip /etc/mysql
            sudo zip -ry /home/user/backup/$(date +"%Y-%m-%d")/var_www_rest.zip /var/www -x "*html*"
            sudo zip -ry /home/user/backup/$(date +"%Y-%m-%d")/var_www_html.zip /var/www/html
            sudo zip -ry /home/user/backup/$(date +"%Y-%m-%d")/home_user.zip /home/user -x "*backup*"
            # Backup All End
            echo "Backup Completed Successfully!"
            echo "Location: /home/user/backup/$(date +"%Y-%m-%d")"
    
        chmod +x /home/user/bash/backupscript.sh
        sudo ln -s /home/user/bash/backupscript.sh /usr/bin/backupscript
    

    将/home/user更改为您的用户目录,并在终端上的任意位置键入:backupscript以运行脚本!(假设/usr/bin在您的路径中)

    在本例中,该文件将被称为
    myShell

    首先,我们需要创建此文件,我们可以从键入以下内容开始:

    sudo nano myShell
    
    echo Hello World!
    
    注意,我们没有放置
    .sh
    扩展名? 这是因为当我们从终端运行它时,我们只需要键入
    myShell
    即可运行命令

    现在,在nano中,顶行必须是
    #/bin/bash
    然后您可以在继续之前离开新行

    为了演示,我将添加一个基本的
    helloworld响应

    因此,我键入以下内容:

    sudo nano myShell
    
    echo Hello World!
    
    在此之后,我的示例应该如下所示:

    #!/bin/bash
    echo Hello World!
    
    现在保存文件,然后运行以下命令:

    chmod +x myShell
    
    现在,我们已经使文件可执行,我们可以使用以下命令将其移动到
    /usr/bin/

    sudo cp myShell /usr/bin/
    
    恭喜你!我们的命令现在完成了!在终端中,我们可以键入
    myShell
    ,它应该说
    Hello World

    在脚本之前输入
    “#!/bin/sh”
    。 然后将其保存为
    script.sh
    ,例如。 将其复制到
    $HOME/bin
    $HOME/usr/bin

    不同linux发行版上的目录可能不同,但它们以
    'bin'
    结尾,并且位于主目录中
    cd$HOME/bin
    $HOME/usr/bin

    键入chmod 700 script.sh

    您只需在终端上键入
    run.sh
    即可运行它。 如果不起作用,请尝试
    chmod+x run.sh
    而不是
    chmod 700 run.sh

    只需:

    /path/to/file/my_script.sh
    

    使任何文件成为可执行文件


    假设您有一个名为migrate_linux_amd64的可执行文件,并且希望将该文件作为命令运行,如