[Hey, scripting guy!] bash, простые трудности

klyv

1) как переменной присвоить значением строку, которую выдаст CMD, без `...`?
2) передаётся ли в родительский шелл хэш комманд дочернего? вернее, как сделать, чтоб передавался?

psihodog

1) $(CMD) — это, вроде, более рекомендуемый способ, чем `CMD`
2) хэш?

klyv

1) одна фигня, не прокатит, если переменная заполнится после того как начнёт выполняться команда (например, для циклов актуально)
2) хэш, он же hash. в который попадают соответствия комманды пути к файлу, который надо выполнять. заполняется по мере надобности. ввели command, он смотрит, не встроенная ли, смотрит в кэш, ищет в PATH, находит - пишет в хэш.

vall

2) если файловое окружение меняется то я бы не стал бы подпираться на это. если вопрос в производительности то это фигня — затраты на лишний лукап если он был недавно очень невелики, хотя он скорее всего наследуется тем более что встречал проблемы у баша с перевалидацией этого кэша.

klyv

я хочу туда добавить то, что в PATH выглядит просто ужасно - все приложения из /Applications/... (MacOS)

vall

сделай враппер-скрипт и накидай на него симлиньков с именами нужных бинарей, а внутри какую хочешь логику по угадыванию нужного пути
или алисасов наструячъ в рц-скриптах

klyv

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

vall

а делать симлиньки/герерировать алиасы оттуда низя?

klyv

ну всё равно как-то фи... надо поробовать сделать это красиво :)
Оставить комментарий
Имя или ник:
Комментарий: