Я болею за две группы. У меня есть один сценарий, и я хотел бы сохранить его одним. У меня проблемы с тестовой функцией:
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