Я создал простую программу C, которая печатает "Привет мир", как произведено и сохранено это как test.c
.
Скомпилированный это в терминале как gcc -o test test.c
И выполненный это как ./test
но нет никакого выходного показа.
Если та же программа, сохраненная как try.c
и любой (но не как тест) это компилирует и работает отлично.
Почему? Есть ли проблема со скомпилированным двоичным файлом C, имеющим имя test
?
существует программа удара, названная тестом, и, когда выполнено это ничего не делает без аргументов (сделайте быстрый тест человека в терминале для наблюдения больше об этом). Именно поэтому переименование работало:)
Партии людей не знают, что 'тест' является программой также, лучше всего для не именования сценариев и такого 'теста'
Существует программная оболочка, названная test
, который тестирует условия, который является, почему Вы не могли выполнить двоичный файл. Это - оболочка, встроенная определенный POSIX, который также существует во многих других оболочках такой как ksh
(оболочка Korn) и ash
(оболочка Almquist). Bash сделан (главным образом) соответствовать самой спецификации POSIX. test
утилита сделана проверить на различные атрибуты для файла или для различной строки и числовых тестов. Примеры:
test -e FILE # if the file exists in some form
test -f FILE # if the file exists as a regular file (not a directory, symlink, etc.)
test -n "$str" # if the string has a length greater than 0
test -z "$str" # if the string is an empty string
test "$str" = "foo" # equivalent to `str == "foo"` in C
test $num -lt 10 # if the number is less than 10
test $num -ge 10 # if the number is greater than or equal to 10
test $num -eq 10 # if the number equals 10
, Короче говоря, это находится, вероятно, в Ваших интересах переименовать Вашу программу вместо того, чтобы пытаться работать, Bash файла отказывается даже подтверждать простую возможность существования.;-)