Как запустить сценарий оболочки без использования команд" sh "или" bash"?



у меня есть сценарий оболочки, который я хочу запустить без использования команд "sh" или "bash". Например:



вместо: sh script.sh



Я хочу использовать: script.sh



Как я могу это сделать?





(ii) я также читал о связывании скрипта с другим файлом в переменных пути. Я использую свой университетский сервер и я пока нет прав на создание файла в этих местах.

702   8  

8 ответов:

добавить "shebang" в верхней части файла:

#!/bin/bash

и сделать ваш файл исполняемым (chmod +x script.sh).

наконец, измените свой путь, чтобы добавить каталог, в котором находится ваш скрипт:

export PATH=$PATH:/appropriate/directory

(как правило, вы хотите $HOME/bin для хранения собственных скриптов)

вот некоторые из предварительных условий использования непосредственно имени скрипта:

  1. добавить sha-bang {#!/bin/bash) линия в самом верху.
  2. используя chmod u+x scriptname сделать скрипт исполняемым.
  3. поместите скрипт под .
  4. запустить скрипт, используя только имя скрипта.

Примечание: причина, по которой я предложил поместить его под /usr/local/bin папка, потому что, скорее всего, это будет путь уже добавлено в ваш PATH variable.

обновление:

если у вас нет доступа к /usr/local/bin папка затем выполните следующие действия:

  1. создать папку в вашем домашнем каталоге и назовем его myscripts.
  2. Do ls -lart в вашем домашнем каталоге, чтобы определить сценарий запуска, который использует ваша оболочка. Это должно быть либо .profile или .bashrc.
  3. после того, как вы определили сценарий запуска, добавьте следующую строку в свой сценарий - export set PATH=$PATH:~/myscript.
  4. после добавления, источник запуска сценария или выйти из системы и войти обратно.
  5. выполните сценарий, используя имя сценария.

просто убедитесь, что это исполняемый файл, используя chmod +x. По умолчанию текущий каталог не находится на вашем пути, поэтому вам нужно будет выполнить его как ./script.sh - или иным образом ссылаться на него по квалифицированному пути. Кроме того, если вам действительно нужно просто script.sh, вам нужно будет добавить его в свой путь. (У вас может не быть доступа для изменения системного пути, но вы почти наверняка можете изменить путь своей текущей среды.) Это также предполагает, что ваш скрипт начинается с чего-то вроде #!/bin/sh.

вы также можете использовать псевдоним, который на самом деле не связан со сценариями оболочки, а только оболочкой, и прост как:

alias script.sh='sh script.sh'

что позволит вам использовать простоscript.sh (буквально - это не будет работать для любой другой *.sh file) вместо sh script.sh.

в этом примере файл будет называться myShell

прежде всего нам нужно будет сделать этот файл, который мы можем просто начать, набрав следующее:

sudo nano myShell

обратите внимание, что мы не поставили

вы должны включить выполнение программы.

chmod +x script.sh

затем вы можете использовать ./script.sh

вы можете добавить папку в путь в свой .bashrc файл (находится в вашем домашнем каталоге). Добавьте эту строку в конец файла:

export PATH=$PATH:/your/folder/here

вы можете ввести sudo install (имя скрипта) /usr / local/bin/(что вы хотите ввести для выполнения указанного скрипта)

ex:sudo install quickcommit.sh /usr/local/bin/quickcommit введите пароль

теперь может работать без .sh и в любом каталоге

добавить . (текущий каталог) к переменной пути.
Вы можете сделать это путем редактирования .файл профиля.
поместите следующую строку в ваш .файл профиля
PATH=$PATH:.

Просто не забудьте добавить Shebang (#!/bin/bash) строка в начале вашего скрипта и сделать скрипт исполняемым (с помощью chmod +x <File Name>).

вот мой сценарий резервного копирования, который даст вам идею и автоматизацию:

Сервер: 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 находится в вашем пути)

Comments

    Ничего не найдено.