Wie Sie wahrscheinlich bereits wissen, von dem Standardwert IFS
ist <space><tab><newline>
. Verwenden von:
echo "$IFS"
Sie können wahrscheinlich schließen, dass es ein Zeilenumbruchzeichen und einige andere Leerzeichen gibt, aber nichts sicheres.
Um den genauen Wert der IFS
Variablen zu ermitteln, können Sie die cat
Befehlshilfe wie folgt aufrufen:
echo "$IFS" | cat -ETv
das ist gleichbedeutend mit:
cat -ETv <<< "$IFS"
Beispielausgabe für den Standardwert von IFS
:
cat -ETv <<< "$IFS"
^I$
$
Aus der vorherigen Ausgabe können Sie ableiten, dass am Anfang ein Leerzeichen und ein Zeilenumbruchzeichen vorhanden sind. Aber was ist mit den anderen seltsamen Charakteren. Schauen wir uns das an man cat
:
-E, --show-ends
display $ at end of each line
-T, --show-tabs
display TAB characters as ^I
-v, --show-nonprinting
use ^ and M- notation, except for LFD (n.a. linefeed or newline character) and TAB
Die ^I
Sequenz aus der obigen Ausgabe bedeutet also ein TAB-Zeichen und die anderen beiden $
Zeichen das Ende der Zeile.
od
Befehls und der von Ihnen vorgeschlagenen Optionen hätten. Ich stelle mir vor, dass die Abstimmungen mit der Beantwortung zusammenhängen .Der Befehl
echo $IFS
(beachten Sie das Fehlen von doppelten Anführungszeichen) zeigt den Wert von IFS möglicherweise aufgrund der Wortteilung nicht korrekt an .Zum Beispiel:
Der richtige Weg, um IFS anzuzeigen, ist also:
Andere Möglichkeiten sind:
Verbunden:
quelle