Как заставить файл сценария bash запрашивать приглашение перед переходом к следующему шагу?

У меня есть однострочный сценарий для создания файла в каталоге и открытия файла с помощью Kwrite. Я бы хотел, чтобы сценарий запрашивал имя файла, который должен быть создан и открыт Kwrite. В настоящее время он даже не открывает терминал, но в идеале должен. Как мне добиться этого с помощью следующего сценария?:

cat> file.php & kwrite file.php

Я намерен вставить скопированные части одного файла для создания нового файла.

1
задан 7 June 2021 в 05:40

1 ответ

Вариант 1. Использование параметра сценария bash

Создайте сценарий следующим образом:

#!/bin/bash
( echo something > "$1".php && kwrite "$1".php ) &
clear

Затем, вы можете вызвать сценарий, передав имя файла после команды.Затем сценарий автоматически создаст файл с желаемым содержимым, автоматически добавив расширение .php , и откроет файл в kwrite, одновременно отпуская приглашение терминала для ввода следующей команды.

$ 1 в скрипте - это переменная, которая автоматически извлекает следующее слово в командной строке. например если сценарий называется phpfile , то команда

phpfile myfile

создаст и откроет файл myfile.php .

Вариант 2. Использование команды read

Команда read позволяет запрашивать у пользователя ввод в командной строке.

#!/bin/bash
echo "Please enter filename: "
read FILENAME
echo something > "$FILENAME".php && nohup kwrite "$FILENAME".php &
clear

nohup может оказаться полезным, если вы работаете с терминала. Он отделяет редактор от процессов терминала, поэтому он не будет закрыт, если вы закроете терминал.

Вариант 3. Использование графического инструмента

Zenity , установленного по умолчанию в Ubuntu, или Kdialog на рабочем столе Plasma, позволяет запрашивать у пользователя ввод в графическом диалоговом окне для использовать в скриптах. Вы вызываете эти инструменты в скрипте. Затем пользовательский ввод помещается в переменную. Преимущество здесь в том, что тогда вы можете назначить сценарий для сочетания клавиш. Затем вы можете вызвать его одним нажатием клавиши, чтобы открыть диалоговое окно Zenity и заставить скрипт выполнять свою работу.

#!/bin/bash
FILENAME=$(zenity --entry --title "Name request" --text "Please enter file name:")
echo something > "$FILENAME".php && nohup kwrite "$FILENAME".php &
clear
3
ответ дан 28 July 2021 в 11:31

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

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