Подтвердить что ты не робот

Создайте текстовый файл и заполните его с помощью bash

Мне нужно создать текстовый файл (если он уже не существует) и записать новую строку в файл, используя bash.

Я уверен, что это просто, но может ли кто-нибудь объяснить это мне?

4b9b3361

Ответ 1

Если вы хотите, чтобы это было как 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 в приведенном выше примере использования.

Ответ 2

Создание текстового файла в unix можно выполнить с помощью текстового редактора (vim, emacs, gedit и т.д.). Но то, что вы хотите, может быть что-то вроде этого

echo "insert text here" > myfile.txt

Это поместит текст "вставить текст здесь" в файл myfile.txt. Чтобы убедиться, что это сработало, используйте команду "cat".

cat myfile.txt

Если вы хотите добавить в файл, используйте

echo "append this text" >> myfile.txt

Ответ 3

Предполагая, что вы имеете в виду команды оболочки UNIX, просто запустите

echo >> file.txt

echo печатает новую строку, а >> сообщает оболочке добавить эту строку в файл, создавая, если она еще не существует.

Чтобы правильно ответить на вопрос, мне нужно было знать, что вы хотите, если файл уже существует. Если вы хотите заменить его текущее содержимое на новую строку, например, вы бы использовали

echo > file.txt

EDIT: и в ответ на комментарий Justin, если вы хотите добавить новую строку только в том случае, если файл еще не существует, вы можете сделать

test -e file.txt || echo > file.txt

По крайней мере, это работает в Bash, я не уверен, что он также работает в других оболочках.

Ответ 4

Ваш вопрос немного расплывчатый. Это команда оболочки, которая делает то, что я думаю, вы хотите сделать:

echo >> name_of_file