У меня есть файл с именем SOURCE, и я хочу создать файл с именем TARGET определенной длины, содержащий копии SOURCE. Длина TARGET не обязательно является целым числом, кратным длине SOURCE. Я хочу сделать это, используя bash для Linux.bash: заполнить файл из другого файла
Моя первая попытка была такова:
while true; do cat SOURCE; done | head -c $TARGET_LENGTH > TARGET
Это висит после записи указанного количества байтов в TARGET. Как заставить его не повесить? (Я подозреваю, что я пропускаю деталь вокруг, как трубы и сигналы работы.)
Edit: Я знаю, что while true
бежит навсегда, но я ожидал, что команда голову, чтобы закрыть все вниз после употребления указанного количества байтов.
'while true; делать ...; done' будет выполняться навсегда. Вы должны сказать 'while', когда и как остановиться. – fedorqui
'while true' работает вечно ... И команда' head' ничего не знает о существовании 'while' перед ним, поэтому не может« закрыть все ». Я бы, наверное, использовал что-то вроде 'awk' для этого. – lurker
Если вы хотите действительно смешное решение (но эй, это шуточное решение, не используйте его серьезно): 'yes '$ ( TARGET'. –