Sagen Sie, ich versuche, Zeilenumbrüche oder Zeilenumbrüche zu löschen. Ich merke, dass wenn ich Transliterate verwende, um die Zeilenumbruch Zeichen tr -d '\n'
zu löschen, bekomme ich die gleichen Ergebnisse, als ob ich tr -d $"\n"
oder tr -d $'\n'
wäre. Was ist der Unterschied?In welchen Fällen sollte ich Dollarzeichen und einfache Anführungszeichen in der Transliteration (zB tr-d ' n') oder eine andere Funktion verwenden?
Ich bin nicht sicher, wie das gleiche in sed oder Grep gilt, weil sie komplizierter sind. Also versuche ich zuerst herauszufinden, dass dies ein einfacheres Bash-Programm zu sein scheint.
Ohne das '$' ist es 'tr', das das Newline-Zeichen erzeugt, mit dem' $ 'ist es bash. 'tr' ist * nicht * ein" bash-Programm ", es hat nichts mit der Shell zu tun, abgesehen davon, dass es normalerweise von bash ausgeführt wird. – cdarke
Würdest du es ein Bash-Dienstprogramm nennen? – Tom
Ich würde es einfach ein Dienstprogramm nennen. Ich kenne seine einzige Semantik, aber diese Programme können von jeder Sprache aus aufgerufen werden, sie sind nicht an Bash gebunden. Natürlich sind sie so entworfen, dass sie von einer Shell aufgerufen werden, also wäre das "Shell Utility Program" nicht so schlecht. Die meisten dieser Programme (die ursprünglichen Versionen sowieso) sind vor ca. 20 Jahren fertiggestellt. Es ist wichtig zu erkennen, dass es sich um separate Programme handelt, die den gesamten Aufwand für die Ausführung in einem separaten Prozess haben. – cdarke