Я собирался предположить, что ваш head
символизирован busybox
, но даже с busybox будет работать head -n 5 < foo.sh
. (На самом деле, тот, который я пробовал, работает head -n 5 foo.sh
, но, возможно, есть версии, которые этого не делают.) Тем не менее, похоже, что head
на вашей машине нет каких-либо стандартов head
. Возможно, это псевдоним или функция оболочки.
Небольшое примечание: важно (хотя и не всегда очевидно) различать «зависающую» программу и программу, которая просто ожидает ввода пользователя. Ваш ждет ввода пользователя. Это отличается от, например, sleep 3600
или for ((i=1;i<100000000;++i)); do :; done
.
Вот несколько вещей, которые вы можете попробовать:
$ type head head is aliased to `echo Surprise\!' #... $ type head head is a function head () { echo surprise\! } # ... $ type head head is hashed (/usr/local/bin/head) $ file /usr/local/bin/head /usr/local/bin/head: POSIX shell script, ASCII text executable $ type head head is hashed (/usr/local/bin/head) $ file /usr/local/bin/head /usr/local/bin/head: symbolic link to `/bin/busybox'