Это - мое первое сообщение здесь. Я только баловался 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, и сенсорная команда может использовать его для создания файла?
Правильный синтаксис
read file
без знака доллара (необходимо, вероятно, также добавить -r
опция, если Вы конкретно не требуете, чтобы обратные косые черты были проанализированы).
Ваше заключение в кавычки также выключено; необходимо определенно удостовериться $file
всегда внутренние двойные кавычки, тогда как статический текст, который не содержит метасимволы оболочки, может безопасно остаться неупомянутым (так /path/to/"$file".txt
или эквивалентно "/path/to/$file.txt"
.
Лучший дизайн в целом должен считать пользовательский выбор как параметр командной строки; затем этот сценарий легко назвать из другого сценария, и пользователь добирается для использования удобств оболочки как история командной строки и подстановка переменных.