Сравнение двух чисел в сценариях оболочки [duplicate]

Обертка вокруг GNU ld, которая не поддерживает скрипты компоновщика

. Некоторые .so-файлы на самом деле являются GNU ld ссылками-компоновщиками , например. Файл libtbb.so является текстовым файлом ASCII с этим содержимым:

INPUT (libtbb.so.2)

Некоторые более сложные сборки могут не поддерживать это. Например, если вы включаете -v в параметры компилятора, вы можете видеть, что mainwin gcc wrapper mwdip отбрасывает файлы команд сценария компоновщика в подробном списке результатов библиотек для ссылки. Простая работа вместо файла командной строки ввода сценария компоновщика вместо копии (или символической ссылки), например

cp libtbb.so.2 libtbb.so

Или вы можете заменить аргумент -l полным путем .so, например вместо -ltbb сделать /home/foo/tbb-4.3/linux/lib/intel64/gcc4.4/libtbb.so.2

8
задан neversaint 8 August 2013 в 07:54
поделиться

3 ответа

Добавить пробел между [и!. И еще].

#!/bin/bash 
DIR="test_dir/";
if [ ! -d "$DIR" ]; then
    # If it doesn't create it
    mkdir $DIR
fi

Также рекомендуется процитировать вашу переменную:

    mkdir "$DIR"
19
ответ дан konsolebox 1 September 2018 в 09:50
поделиться

Вы также можете попытаться просто сказать:

test -d "${dir}" || mkdir "${dir}"

Это создало бы каталог, если он не существует.

1
ответ дан devnull 1 September 2018 в 09:50
поделиться

Добавить несколько пробелов:

if [ ! -d "$DIR" ]; then
#   ^           ^
8
ответ дан falsetru 1 September 2018 в 09:50
поделиться