Вопрос:

Linux сохранить строку в файл без команды ECHO

linux bash shell

1109 просмотра

7 ответа

16 Репутация автора

Я хочу сохранить команду в файл (например, я хочу сохранить строку «cat / etc / passwd» в файл), но я не могу использовать команду echo.

Как я могу создать и сохранить строку в файл напрямую, без использования команды echo?

Автор: David Vypr Источник Размещён: 02.02.2017 10:27

Ответы (7)


2 плюса

96981 Репутация автора

Вы можете перенаправить catв файл, ввести текст и нажать Control-D, когда закончите, например:

cat > file.txt
some text
some more text
^D

К ^DЯ имею в виду , чтобы нажать Control-D в конце. Строка должна быть пустой. Он не будет частью файла, он просто завершит ввод.

Автор: janos Размещён: 02.02.2017 10:29

0 плюса

1 Репутация автора

Я не уверен, что правильно вас понял, но

    cat /etc/passwd > target.file

используйте оператор>, чтобы записать его в файл без повторения

Автор: Catman Размещён: 02.02.2017 10:33

0 плюса

1453 Репутация автора

Если вам нужно использовать его, внутри программы:

cat <<EOF >file.txt
some text
some more text
EOF
Автор: V. Michel Размещён: 02.02.2017 10:41

0 плюса

5138 Репутация автора

Я полагаю, что вы, вероятно, пытаетесь распечатать содержимое строки в файл, следовательно, вы упомянули echo.

Вы избегаете этого:

echo "cat /etc/passwd" > target.file

Вы можете использовать здесь строку в сочетании с cat.

cat > target.file <<< "cat /etc/passwd"

Теперь файл target.fileбудет содержать строку cat /etc/passwd.

$ cat target.file
cat /etc/passwd
$
Автор: alvits Размещён: 02.02.2017 10:50

1 плюс

140223 Репутация автора

 { { command ls $(dirname $(which cat)) | 
    grep ^ca't$'; ls /etc/passwd; } | 
    tr \\n ' '; printf '\n'; }  > output-file

Но это, вероятно, намного проще сделать: printf 'cat /etc/passwd\n'

Чтобы было ясно, это насмешливое решение. Начальная команда - чрезвычайно запутанный способ получить то, что вы хотите, и это должно быть юмористическим ответом. Возможно, поучительно, чтобы понять.

Автор: William Pursell Размещён: 02.02.2017 10:56

1 плюс

181 Репутация автора

Вы избегаете ECHO в целях безопасности (например, используете общий терминал и не хотите оставлять след в истории оболочки того, что вы написали в своих файлах), или вам просто любопытен альтернативный метод?


Простая альтернатива эхо:

Как кто-то сказал, перенаправление cat , вероятно, является более простым способом. Я бы предложил вам вручную ввести конец файла, например так:

cat <<EOF > outputfile

> type here
> your 
> text
> and finish it with
> EOF

Вот строка, которую вы просите, в качестве примера:

 cat <<EOF > myscript.sh
    cat /etc/passwd
    EOF

Возможно, вы не хотите, чтобы все знали, что вы заглянули в этот файл, но если это ваша цель, пожалуйста, обратите внимание, что оборачивание его в исполняемый файл не сделает его более закрытым, так как эти строки все равно будут записываться ...


Безопасность - Избегайте журналов истории и т. Д.

В современной оболочке просто попробуйте добавить пробел в начале каждой команды и свободно использовать все, что вы хотите.

Кстати, мой лучший совет - вообще не использовать этот терминал , если можете. Если у вас есть две оболочки (другая машина или даже другой защищенный пользователь на той же машине), я бы порекомендовал вам использовать netcat . Смотрите здесь: http://www.thegeekstuff.com/2012/04/nc-command-examples/?utm_source=feedburner

Автор: Defrag Размещён: 02.02.2017 11:02

0 плюса

1 Репутация автора

Чтобы создать строку: var1 = your command чтобы сохранить файл или переменную в файле без эха, используйте: cat $ FILE / VAR1> / new / file / path

Автор: Mansi Gupta Размещён: 03.02.2017 02:38
Вопросы из категории :
32x32