Как создать файл сценария для команд терминала?

В Windows я могу написать файл, содержащий команды для cmd (обычно файлы .cmd или .bat). Когда я нажимаю на эти файлы, он открывает cmd.exe и запускает команды, содержащиеся в файле.

Как бы я сделал это в Ubuntu?

Я уверен, что это дубликат, но я не могу найти свой ответ.
Это похоже на эти вопросы, но они не отвечают на вопрос:

Хранить часто используемые команды терминала в файле

CMD.exe Emulator в Ubuntu запустить файл .cmd / .bat

130
задан 13 April 2017 в 15:24

3 ответа

Есть два метода.

Во-первых, самый распространенный - это запись файла, убедитесь, что первая строка -

#!/bin/bash

Затем сохраните файл. Затем отметьте его исполняемым с помощью chmod + x file

. Затем, когда вы щелкнете (или запустите файл с терминала), команды будут выполнены. По соглашению эти файлы обычно не имеют расширения, однако вы можете сделать их заканчивающимися на .sh или любым другим способом.

Несколько примечаний:

  • Любой (я имею в виду любой) файл может быть запущен в Linux при условии, что первая строка - это путь к программе, которая должна интерпретировать файл. Общие примеры включают / bin / python , / bin / sh , / bin / dash , но даже нечетные шарики работают как / bin / mysql
  • Bash - это полноценный язык. Это намного сложнее, чем cmd.exe в Windows. Он имеет мощный язык программирования, который поддерживает функции, циклы, условные выражения, строковые операции и т. Д.
  • Эти документы могут помочь, если вы столкнетесь с проблемами.
  • Если вы не хотите делать файл исполняемым, тогда вы можете можно запустить его, передав его в качестве аргумента bash: файл bash / to / run.sh

Простой пример Bash

#!/bin/bash  
echo "This is a shell script"  
ls -lah  
echo "I am done running ls"  
SOMEVAR='text stuff'  
echo "$SOMEVAR"

Второй метод - записать команды с помощью скрипта . Запустите скрипт и продолжайте делать что-нибудь. Когда вы закончите, наберите exit , и скрипт сгенерирует для вас файл со всем тем, что вы сделали. Он используется реже, но вполне подходит для создания макросов. сценарий man для получения дополнительной информации.

165
ответ дан 13 April 2017 в 15:24

Эквивалентом пакетных файлов Windows являются сценарии оболочки, а отличное руководство по началу работы - Bash Scripting .

По большей части это команды, которые вы можете ввести в командной строке, можно поместить в сценарий оболочки.

Несколько вещей, которые отличаются от командных файлов Windows:

  • Существуют разные интерпретаторы команд, называемые оболочками. По умолчанию используется bash, но если вам интересно, есть и другие, такие как zsh, ksh, dash, perl, python и т. Д.

  • Чтобы запустить сценарий оболочки, вам нужно сделать файл исполняемым, что вы можете сделать с chmod + x

  • В Ubuntu текущий каталог не является путем поиска программы, поэтому вам нужно запустить ./ , а не

  • Имена переменных: $ , а не % %

  • Команды в сценарии оболочки не печатаются по умолчанию, как в пакетном файле.

  • расширение имени файла может быть .sh или (более привычно), вам не нужно использовать расширение. Поместите #! / Bin / bash в самую первую строку файла , который сообщает Ubuntu, какую программу использовать для запуска файла.

  • Комментарии начинаются с # , а не rem .

Надеюсь, это поможет и получайте удовольствие от написания сценариев!

14
ответ дан 13 April 2017 в 15:24

Вы имеете в виду запись в файл с помощью сценария оболочки? Вот несколько способов:

touch file

Этот метод просто создаст файл, но если файл уже существует, он просто изменит дату изменения на время, когда вы использовали эту команду.

echo "text" > file

Этот метод перезаписывает содержимое файл в текст . Если вы хотите очистить файл, вы можете просто сделать это:

echo "" > file

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

cat << EOF > file
test
test1
foo
bar
EOF

Это позволяет вам писать несколько строк в одной команде. Тогда содержимое файла будет следующим:

test
test1
foo
bar

Если вы хотите добавить в файл, замените > на >> .

Надеюсь на это помогает!


РЕДАКТИРОВАТЬ : О, понятно, поэтому вы должны написать файл в gedit, используя расширение .sh (необязательно, но это хорошая идея), а затем в файл Диспетчер, щелкните файл правой кнопкой мыши, выберите «Свойства»> «Разрешения» и установите флажок Разрешить выполнение файла как программы . Затем вы можете дважды щелкнуть по нему, и он запустится :). Кроме того, если вы хотите сделать это в терминале, вы можете запустить эту команду, чтобы сделать его исполняемым (вы можете добавить sudo , если он вам не принадлежит):

chmod +x file

И для запуска :

./file
16
ответ дан 13 April 2017 в 15:24

Другие вопросы по тегам:

Похожие вопросы: