Похоже на использование установщика "с одним щелчком" для дистрибутива фабрики, а не 11.4.
Попробуйте эту ссылку: http://software.opensuse.org/main/ymp_without_arch_and_version?base=openSUSE%3A11.4&package=boost&project=devel%3Alibraries%3Ac_c%2B%2B&query=boost&repository=openSUSE_11.4 вместо этого.
Функции Shell не работают в их собственной подоболочке, если Вы не используете круглые скобки вместо обычных фигурных скобок вокруг тела. Ваша функция действительно обновляет исполняемый хеш на каждой версии zsh, который я видел, и я не думаю, что существует опция изменить это поведение.
Я думаю source
мог бы быть наилучший вариант здесь. Вот пример:
cat << EOF > foo
touch $1
chmod +x $1
rehash
EOF
Выполниться foo
как это:
source foo bar
Если это было в Вашем пути, bar
теперь completable.
Функция оболочки получает параметры точно так же, как сценарий оболочки. "$@"
, $*
$1... $n
. Все остальные операции тоже работают.
Попробуйте использовать параметр функции, в данном случае $1
.
build() {
~/bin/real_build ${1} && rehash
}
Не используйте кавычки, если только ваш настоящий _скрипт сборки не поддерживает ""
в качестве параметра. ""
отличается от ничего.
Это хороший способ создать «псевдоним», которому нужны аргументы в определенных местах.