Назад | Перейти на главную страницу

Создание и тестирование переменной из MAC и ПК в сценарии Linux Bash

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

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

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

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

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

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

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

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

if ls /path/to/your/files* 1> /dev/null 2>&1; then
    echo "files do exist"
else
    echo "files do not exist"
fi