2017-02-17 6 views
0

Мне нужно wget, которое всегда будет использоваться с опцией --no-check-certificate. Это может быть достигнуто, введя следующую строку в терминале Unix:Псевдоним для сценария оболочки

alias wget='wget --no-check-certificate' 

Однако, когда я исполняю оболочки сценариев .sh, которые включают wget команду, оригинальный wget используется не на один псевдоним. Как я могу решить эту проблему?

+0

Включите команду 'alias' в любом из' ~/.bashrc', '~/.bash_profile','/etc/profile' – Sangharsh

ответ

3

Вы должны убедиться, что ваш псевдоним определен, где Shell-скрипт также использует его. Если вы используете Bash и Shell-скрипт использует /bin/bash в качестве интерпретатора, то вложение в файл .bashrc может быть хорошей идеей.

Тем не менее, --no-check-certificate примерно в 99,9% всех случаев имеет очень плохую идею, так как SSL существует по какой-либо причине.

Также я рекомендую не перезаписывать общие команды с пользовательскими псевдонимами, поскольку это может изменить поведение инструментов, на которые скрипт опирается неожиданным образом. Я действительно рекомендую исправить окружающую среду, чтобы вам не нужен этот грязный хак.

+0

'wget -no-check-certificate https://github.com/ampl/mp/archive/1.3.0.tar.gz' должен выводить файл '1.3.0.tar.gz', но выводит файл' 1.3.0'. Эта проблема вызвана опцией «-no-check-certificate»? – Admia

+0

Нет, это не так, и это также не так. – frlan

+0

'wget --no-check-certificate https: // github.com/ampl/mp/archive/1.3.0.tar.gz' делает' 1.3.0.tar .gz' в linux, но делает файл '1.3.0' в' msys'. Зачем? Результат должен быть «1.3.0.tar.gz», иначе следующие строки моего скрипта '.sh' прерываются. – Admia

Смежные вопросы