У меня есть однострочный сценарий для создания файла в каталоге и открытия файла с помощью Kwrite. Я бы хотел, чтобы сценарий запрашивал имя файла, который должен быть создан и открыт Kwrite. В настоящее время он даже не открывает терминал, но в идеале должен. Как мне добиться этого с помощью следующего сценария?:
cat> file.php & kwrite file.php
Я намерен вставить скопированные части одного файла для создания нового файла.
Вариант 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