Я пытаюсь запустить программу C из файла bash в Linux, а затем записать ее вывод в другой файл (который находится в другом каталоге). Я использую следующую команду:
gcc myfile.c -o test
./test > /home/"$user"/Documents/"$name"/"$file"
Всякий раз, когда я пытаюсь запустить эту команду, программа не запускается, а застревает при загрузке. Даже если я напишу одно имя файла (из того же каталога, где находится программа), программа не запустится, пока я не удалю всю команду перенаправления и не напишу простую команду ./test. Я не знаю, почему это происходит.
Это программа C:
#include <stdio.h>
int main()
{
int array[100], n, c, d, swap;
printf("Enter number of elements\n");
scanf("%d", &n);
printf("Enter %d integers\n", n);
for (c = 0; c < n; c++)
scanf("%d", &array[c]);
for (c = 0 ; c < n - 1; c++)
{
for (d = 0 ; d < n - c - 1; d++)
{
if (array[d] > array[d+1])
{
swap = array[d];
array[d] = array[d+1];
array[d+1] = swap;
}
}
}
printf("Sorted list in ascending order:\n");
for (c = 0; c < n; c++)
printf("%d\n", array[c]);
return 0;
}
Даже если я пишу это так:
./test | tee text.txt
Ничего не печатается.