# for i in {1..5} do echo "New File $i" > file$i done
-bash: syntax error near unexpected token `>'
Я пробовал приведенный выше однострочный скрипт, который потерпел неудачу с ошибкой выше. Я пытаюсь автоматизировать процесс набора:
echo "New File" > file1
echo "New File" > file2
echo "New File" > file3
echo "New File" > file4
echo "New File" > file5
Я пытаюсь сделать это без создания файла сценария, например, приведенного ниже, который работает:
#!/usr/bin/env bash
for i in {1..5}
do
echo "New File $i" > file$i
done
Этот скрипт работает, но я хочу иметь возможность сделать что-то подобное в одной строке из командной строки.
Я понимаю, что проблема связана с перенаправлением >
к файлу. Я пытался избежать перенаправления >
еще нескольких вещей и гуглить, но я не нашел ничего, что сработало.
Причина, по которой я хочу сделать это в одной строке в cli, заключается в том, что я хочу продолжать изменять номера и содержимое файлов для тестирования, и я предпочел бы просто делать это по команде вместо редактирования файла сценария.
Обновление 1
Я попробовал разделители команд, как предложено, и получил ошибку ниже:
# for i in {1..5} do ; echo "New File $i" > file$i ; done
-bash: syntax error near unexpected token `echo'
Обновление 2
Я неправильно указывал разделители команд в обновлении 1.
Сделано с разделителями команд, так как они в ответе ниже работают как шарм.