Итак, я начал писать сценарии bash, и я создаю скрипт, который будет автоматически загружаться из исходного кода (так что он просто компилирует tarballs для вас). Мне нужно, чтобы он менял каталоги, чтобы перейти в архив. Тем не менее, всякий раз, когда я использую эту командуКак использовать команду чтения Bash для захвата пути к файлу, содержащего «~» (tilde)
read path
cd $path
Я всегда получаю ошибку tar-installer.sh: line 13: cd: ~: No such file or directory
Для тех, кто нуждается его, вот полный скрипт ...
#!/bin/bash
# This program auto-installs tarballs for you.
# I designed this for Linux noobies who don't
# know how to install tarballs. Or, it's for
# people like me who are just lazy, and don't
# want to put in the commands ourselves.
echo "Tar Installer v1.1"
echo "Gnu GPL v2.1"
echo -n "Path to tarball:"
read path
cd $path
echo -n "Please enter the file you wish to complile..."
read file
if $file =="*.tar.gz"
then
tar -xzf $file
else
$file =="*.tgz"
then
tar -xzf $file
else
$file =="*.tar.bz2"
then
tar -xjf $file
Заключительная часть с тарболлами работа еще в ходе выполнения. Но каталог, который я использовал для cd path
, был ~/Downloads/
Это, вероятно, легкое исправление, но я не знаю, как это исправить.
Проблема, как представляется, связанных с чтения встроенной функции при приеме путей файлов с «~ /» в этом. –
используйте http://shellcheck.net и исправьте все ошибки, обнаруженные там перед отправкой кода (вы должны сделать это сейчас). Спасибо и удачи .. – shellter