2015-04-19 4 views
1

Я наткнулся на код pyspark, и есть функция, которая меня действительно смутила.Поиск в Linux Hash Command

if hash python2.7 2>/dev/null; then 
    # Attempt to use Python 2.7, if installed: 
    DEFAULT_PYTHON="python2.7" 
else 
    DEFAULT_PYTHON="python" 
fi 

Комментарий говорил «# Определяет Python исполняемого для использования, если PYSPARK_PYTHON или PYSPARK_DRIVER_PYTHON не установлен: », но я использовал только хэш, чтобы найти частоту недавно используемых команд оболочки, я действительно дон Не знаю, как это работает.

Может ли кто-нибудь помочь мне понять это утверждение?

+1

Вы использовали хэш для чего? Вы имеете в виду «историю» и «uniq»? Команда 'hash' [здесь] (http://www.gnu.org/software/bash/manual/bashref.html#index-hash). –

+0

Я не уверен, где ваш вопрос. Похоже, что речь идет не о 'hash' вообще (вам может потребоваться изменить заголовок вопроса), но это' if' не выглядит обычным 'if [[...]]'. Если это вопрос, просто запустите 'help if' в Bash и прочитайте его. – livibetter

+0

@livibetter: 'if cmd; затем эхо работало; else echo nope; fi' - общая идиома для проверки статуса выхода 'cmd'. Чтобы увидеть это, попробуйте подставить '/ bin/true' или'/bin/false' для 'cmd' в моем примере. Всем удачи. – shellter

ответ

0

от here, хеш будет искать $ PATH, если имя предоставлено.