Генерация и тестирование переменной из MAC против ПК в скрипте Linux Bash

Я поддерживаю две группы. У меня есть один сценарий, и я хотел бы сохранить его в одном. У меня проблемы с тестовой функцией:

convtype=./Sample*/
if [[ -n convtype ]]; then

где он работает нормально для некоторых пользователей, но не для других. Единственное, что я заметил, это то, что для людей, запускающих его с ПК, либо значение, либо пустая строка возвращаются в зависимости от того, что находится в каталоге, поэтому тогда оператор my if будет иметь значение true или false. Для пользователей MAC всегда вычисляется строка и поэтому всегда имеет значение true.

если я изменю эти две строки на:

 if [[ -d Sample*/ ]]; then

если работает для пользователей MAC, но не для пользователей ПК.

Я ищу способ сказать, с какого типа машины запускается скрипт, или другой способ генерирования / проверки переменной, которая будет работать независимо. Предложения наиболее ценятся.

1 ответ

Если цель состоит в том, чтобы проверить, существует ли каталог, и обе системы работают в bash, то вы можете сделать это рабочее решение, найденное в этом рабочем примере.

if ls /path/to/your/files* 1> /dev/null 2>&1; then
    echo "files do exist"
else
    echo "files do not exist"
fi
Другие вопросы по тегам