Динамический компоновщик ищет библиотеки в разных местах, но по умолчанию они не включают текущий каталог. В Linux список
LD_LIBRARY_PATH
, если таковые имеются; /etc/ld.so.cache
; /usr/lib
и т. д. ). Ссылка выше содержит более подробную информацию.
Вы можете повлиять на способ разрешения зависимостей путем экспорта LD_LIBRARY_PATH
; конкретно в вашем случае:
export LD_LIBRARY_PATH=.
(Не оставляйте это значение.)
В Zshdeclare -F
объявляется переменная с плавающей запятой двойной -точности:
$ declare -F myvar
$ echo $myvar
0.0000000000
Чтобы перечислить все имена функций в Zsh, используйте typeset -f +
.
В zsh
специальный ассоциативный массив $functions
сопоставляет имена функций с их определением, поэтому ${(k)functions}
, который расширяется до клавиш этого ассоциативного массива, также расширяется до списка имен функций.
Bash и Zsh — разные оболочки, нельзя ожидать, что они будут вести себя точно так же.
declare
не является стандартным расширением оболочки -.
Вы не можете ожидать, что это будет работать одинаково в bash
и zsh
.
В общем, если вы хотите использовать нестандартные -расширения в сценарии оболочки, обязательно используйте оболочку, для которой они были разработаны, с ожидаемым поведением. Другими словами, :Если вы хотите получить поведение bash
, используйте bash
в своем скрипте.
BTW :Функция, которую вы хотите использовать, отсутствует вPOSIX