Генерация и тестирование переменной из 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