для помещения всего вывода команды в массив BASH просто сделайте следующее:
array=( $( command ) )
Сохраните весь при чтении
части. Однако будьте осторожны со специальными символами в именах.
Немного предыстории :Недавно я столкнулся с той же проблемой.
Моя работа в основном связана с моим университетским высокопроизводительным кластером, поэтому библиотеки, которые я использую для вычислений, сильно портят мою учетную запись.
Решение, которое сработало для меня, состояло в том, чтобы сначала проверить, какие библиотеки были загружены с помощью ldd /usr/bin/htop
. Мой выход был примерно таким:
linux-vdso.so.1 => (0x00007ffedfd87000)
libncursesw.so.5 => /usr/local/Anaconda/Anaconda3/lib/libncursesw.so.5 (0x00002b84c2bc2000)
libtinfo.so.5 => /usr/local/Anaconda/Anaconda3/lib/libtinfo.so.5 (0x00002b84c2df3000)
libm.so.6 => /lib64/libm.so.6 (0x00002b84c304f000)
libgcc_s.so.1 => /usr/local/Anaconda/Anaconda3/lib/libgcc_s.so.1 (0x00002b84c3352000)
libc.so.6 => /lib64/libc.so.6 (0x00002b84c3564000)
libtinfow.so.5 => /usr/local/Anaconda/Anaconda3/lib/./libtinfow.so.5 (0x00002b84c3931000)
/lib64/ld-linux-x86-64.so.2 (0x0000563efed0e000)
Это может быть не очень очевидно, но зависимости были выполнены через библиотеки Anaconda3, что довольно неудобно. Я попросил загрузить модуль anaconda в свой ~/.bashrc
. Это вызывает несовпадение в библиотеках с теми, что в заголовках.
Решение состояло в том, чтобы просто выгрузить модуль anaconda с помощьюmodule unload python/Anaconda3
П.С. Это очень конкретное решение, которое сработало для меня. Не могли бы вы написать свой из ldd
?