Как позволить пользователю определять пользовательское имя файла в Bash?

Это - мое первое сообщение здесь. Я только баловался Python на Udemy, и я знаю, что некоторый HTML и CSS, но решенный дают Bash движение сегодня вечером. Я пытаюсь записать простой сценарий с помощью переменной, и это не работает. Сценарий должен распечатать некоторый текст, попросить некоторый ввод данных пользователем, затем использовать тот вход в последующей команде как так:

#!bin/bash

echo "Please select a name for your new file (files are saved in txt by default)": && read $file
echo "Creating file "$file".txt on /home/linux/Desktop"
touch "/home/linux/Desktop/"$file".txt"
echo "Your new file has been created."
sleep 2
exit

результатом является скрытый файл, который я должен найти в терминале с ls-l, управляют, и требует, чтобы двойные кавычки удалили (комната ".txt").

Как я должен написать свой код так, чтобы пользователь мог назвать файл, компьютер может вспомнить, что имя переменной, вставьте то имя переменной в filepath, и сенсорная команда может использовать его для создания файла?

0
задан 8 March 2020 в 18:41

1 ответ

Правильный синтаксис

read file

без знака доллара (необходимо, вероятно, также добавить -r опция, если Вы конкретно не требуете, чтобы обратные косые черты были проанализированы).

Ваше заключение в кавычки также выключено; необходимо определенно удостовериться $file всегда внутренние двойные кавычки, тогда как статический текст, который не содержит метасимволы оболочки, может безопасно остаться неупомянутым (так /path/to/"$file".txt или эквивалентно "/path/to/$file.txt".

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

3
ответ дан 17 March 2020 в 00:06

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

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