Как заставить многошаговую команду запрашивать ввод?

Извините за запутанный заголовок, но вот что я хочу сделать.

Я запускаю эту команду довольно часто:

w3m -dump http://www.example.com/file-to-save-as-text/ > ~/Desktop/saved-file.txt

Возможно ли иметь (Zenity?) Или простой скрипт терминала, который позволит мне вставить в URL http://www.example.com/file-to-save-as-text/ а затем предложите мне ввести только имя файла, например saved-file.txt после которого w3m будет "сбрасывать" содержимое URL в ~/Desktop с указанным именем файла?

Другими словами, вместо ввода всей команды мне просто нужно вставить URL-адрес (скопированный из адресной строки моего браузера) и указать подходящее имя файла.

2 ответа

Решение

Вы можете использовать этот скрипт:

#!/bin/bash
url="$(zenity --entry "URL" --title "Enter the URL:" --text "Enter the URL:" 2>/dev/null)"
filename="$(zenity --entry "filename" --title "Enter the filename:" --text "Enter the filename:" 2>/dev/null)"
w3m -dump "$url" > ~/Desktop/"$filename"
  • url="$(zenity --entry "URL" --title "Enter the URL:" --text "Enter the URL:" 2>/dev/null)": запрашивает URL и сохраняет ввод в $url;
  • filename="$(zenity --entry "filename" --title "Enter the filename:" --text "Enter the filename:" 2>/dev/null)": запрашивает имя файла и сохраняет ввод в $filename;
  • w3m -dump "$url" > ~/Desktop/"$filename": выполняет w3m -dump на $url и перенаправляет вывод в ~/Desktop/"$filename",

Вы можете использовать что-то вроде этого:

#!/bin/bash

echo "enter URL"
read URL
echo "enter filename"
read NAME

w3m -dump "$URL" > "$NAME"

Вы можете сохранить это как run_w3m.sh, сделайте его исполняемым с chmod 755 run_w3m.sh и запустить его с ./run_w3m.sh, Сценарий запросит URL-адрес и путь к файлу.

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