Мне нужно создать текстовый файл (если он уже не существует) и записать новую строку в файл, используя bash.
Я уверен, что это просто, но может ли кто-нибудь объяснить это мне?
Мне нужно создать текстовый файл (если он уже не существует) и записать новую строку в файл, используя bash.
Я уверен, что это просто, но может ли кто-нибудь объяснить это мне?
Если вы хотите, чтобы это было как script, следующий Bash script должен делать то, что вам нужно (плюс указать, когда файл уже существует):
#!/bin/bash
if [ -e $1 ]; then
echo "File $1 already exists!"
else
echo >> $1
fi
Если вам не требуется сообщение "уже существует", вы можете использовать:
#!/bin/bash
if [ ! -e $1 ]; then
echo >> $1
fi
Изменить использование:
Сохраните любую версию с именем, которое вам нравится, скажем, "create_file" (цитирует мой, вы не хотите, чтобы они были в имени файла). Затем, чтобы сделать файл executatble, в командной строке выполните:
chmod u+x create_file
Поместите файл в каталог по вашему пути, а затем используйте его с помощью:
create_file NAME_OF_NEW_FILE
$1 - специальная переменная оболочки, которая принимает первый аргумент в командной строке после имени программы; т.е. $1 получит NAME_OF_NEW_FILE в приведенном выше примере использования.
Создание текстового файла в unix можно выполнить с помощью текстового редактора (vim, emacs, gedit и т.д.). Но то, что вы хотите, может быть что-то вроде этого
echo "insert text here" > myfile.txt
Это поместит текст "вставить текст здесь" в файл myfile.txt. Чтобы убедиться, что это сработало, используйте команду "cat".
cat myfile.txt
Если вы хотите добавить в файл, используйте
echo "append this text" >> myfile.txt
Предполагая, что вы имеете в виду команды оболочки UNIX, просто запустите
echo >> file.txt
echo
печатает новую строку, а >>
сообщает оболочке добавить эту строку в файл, создавая, если она еще не существует.
Чтобы правильно ответить на вопрос, мне нужно было знать, что вы хотите, если файл уже существует. Если вы хотите заменить его текущее содержимое на новую строку, например, вы бы использовали
echo > file.txt
EDIT: и в ответ на комментарий Justin, если вы хотите добавить новую строку только в том случае, если файл еще не существует, вы можете сделать
test -e file.txt || echo > file.txt
По крайней мере, это работает в Bash, я не уверен, что он также работает в других оболочках.
Ваш вопрос немного расплывчатый. Это команда оболочки, которая делает то, что я думаю, вы хотите сделать:
echo >> name_of_file