-2

Я ищу команду оболочки в Unix, которая имеет ненулевой вывод, который является одинаковым для всех платформ Unix (например, всегда будет возвращать 1 в системе Unix), а также не имеет (или нулевого значения) вывод в Windows.

Я пытался (в Unix):

sh echo 1

но это возвращает:

cannot execute binary file

с помощью

echo 1

не соответствует этому критерию, так как он производит вывод в Windows, а также Unix.

2 ответа2

3

Команда dir существует как в Linux, так и в Windows и может подойти для этого. Команда dir в windows устанавливает код выхода для сценариев. Это также имеет плюс в том, что это неразрушающая команда.

В Linux, согласно справочным страницам, эти коды ошибок доступны.

Exit status:
 0  if OK,
 1  if minor problems (e.g., cannot access subdirectory),
 2  if serious trouble (e.g., cannot access command-line argument).
2

Проверьте наличие переменных среды SYSTEMROOT или SYSTEMDRIVE чтобы убедиться, что вы работаете в Windows. Если вы настаиваете на реальном подходе с поясом и подтяжками, проанализируйте значение, чтобы убедиться, что вы нашли букву C: или подобную букву.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .