Может быть, кто-то здесь сможет мне помочь. Установили Ubuntu 12.04 LTS (kubuntu) на две машины. Файлы .bashrc и .bash_profile идентичны, поскольку файловые структуры на каждом компьютере одинаковы.
На машине 1 я запускаю bash-скрипты в окне терминала с простым: ./scriptname.sh
На машине 2 я не могу этого сделать и должен использовать: sh scriptname.sh Также не могу Я использую ./ и завершаю табуляцию в имени файла скрипта.
Все исполняемые биты установлены правильно, все файлы и папки имеют правильные разрешения. В заголовке скриптов шебанг настроен правильно.
Есть идеи, почему это происходит?
Приветствия
Единственное, что могло бы вызвать это, это если скрипт не является исполняемым. Я знаю, что вы сказали, что исполняемый бит установлен, но убедитесь:
chmod +x scriptname.sh
Ошибки, которые вы видите, могут быть вызваны попыткой запустить исполняемый файл на носителе, смонтированном со свойством noexe. Введите mount и проверьте свойства устройства, содержащего скрипт. При необходимости измените свойства / etc / fstab монтирования.
Я читал о различных проблемах, возникающих с автозаполнением, не обязательно с 12.04, и кажется, что стоит попробовать следующие две опции:
Сначала попробуйте отключить программируемое завершение bash : Закомментируйте эти три строки как в /etc/bash.bashrc
, так и в $HOME/.bashrc
пользователя:
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
. /etc/bash_completion
fi
Вы можете обнаружить, что эти строки уже закомментированы с #
впереди, в этом случае просто оставь как есть.
Итак, во-вторых, попробуйте переустановить bash-complete :
sudo apt-get purge bash-completion
sudo mv /etc/bash_completion.d /etc/bash_completion.d.bak
sudo apt-get install bash-completion