Bash in Datei ohne Echo schreiben?
Als eine übung, eine Methode vorhanden sein, um die Umleitung an einen string in einer Datei ohne echo? Derzeit bin ich mit
echo "Hello world" > test.txt
Weiß ich über cat
und printf
. Ich dachte so etwas wie
> test.txt <<<"Hello world"
Natürlich nicht funktioniert, aber vielleicht einen ähnlichen Befehl?
InformationsquelleAutor der Frage | 2012-07-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dazu können Sie mit "cat" und ein hier-Dokument.
Ein Grund HIERFÜR wäre, dass jede Möglichkeit eines Passwortes sichtbar in der Ausgabe von ps. Aber in der bash und die meisten modernen shells, "echo" ist ein built-in-Befehl, und es wird nicht zeigen, bis in den ps-Ausgang, so etwas wie dieses ist sicher (ignorieren Sie etwaige Probleme bei der Speicherung von Passwörtern in Dateien, natürlich):
InformationsquelleAutor der Antwort Eric
Hatte ich das problem nicht in der Lage zu senden ">" und endete mit echo!
InformationsquelleAutor der Antwort guest
Gibt es viel zu viele Möglichkeiten zu diskutieren, die Sie wahrscheinlich nicht kümmern. Können Sie hack natürlich - strace bash, oder tun alle Arten von schwarzer Magie ausgeführt Bash in gdb.
Haben Sie eigentlich zwei völlig unterschiedliche Beispiele gibt.
<<<'string'
ist schon das schreiben einer Zeichenkette in eine Datei. Wenn alles akzeptabel ist, andere alsprintf
echo
undcat
verwenden, können Sie viele andere Befehle Verhalten sich wie die Katze (sed, awk, tee, etc).Oder der Hölle, je nachdem, wie Sie zusammengestellt habe Bash.
Wenn Sie möchten, verwenden Sie nur die bash Zeichenketten und Umleitung, in reiner bash, kein hacken und kein loadables, es ist nicht möglich. In ksh93 es ist jedoch auch möglich.
InformationsquelleAutor der Antwort ormaaj
Den Weg, dies zu tun in der bash ist
zsh <<< '> test <<< "Hello World!"'
Dies ist einer der interessanten Unterschiede zwischen zsh und bash: gegeben unchained
>
oder>>
zsh hat das gute Gefühl, um es Haken bis zu stdin, während bash nicht. Es wäre geradezu nützlich - und wenn es nur standard.Ich habe versucht, diese zu senden & append meine ssh-Schlüssel über ssh zu einem remote -
authorized_keys
- Datei, aber die remote-host war bash, natürlich, still und ruhig Tat nichts.Und das ist, warum Sie sollten benutzen Sie einfach
cat
.InformationsquelleAutor der Antwort perickso
Nur die Umleitung nicht funktionieren, da gibt es nichts zu verbinden, die jetzt-öffnen Sie den Datei-Deskriptoren. Also Nein, es gibt keinen Weg wie diese.
InformationsquelleAutor der Antwort Ignacio Vazquez-Abrams
tun würde, es
InformationsquelleAutor der Antwort David Burke
Habe ich eine Lösung für die bash-Puristen.
Die Funktion 'define' hilft uns, weisen Sie einen mehrzeiligen Wert einer variable.
Das braucht einen positions-parameter: name der Variablen um den Wert zuzuweisen.
In der heredoc, Optional sind parameter-Erweiterungen zu!
Glück!
InformationsquelleAutor der Antwort Ivan Gut
Gibt es mehrere Möglichkeiten, es zu tun, führen Sie dieses Skript aufgerufen
exercise.sh
Dies ist die Ausgabe, die Sie sehen sollten:
Und Dateien enthalten sollte:
InformationsquelleAutor der Antwort sdkks