Die folgenden Befehle scheinen ungefähr gleichwertig zu sein:
read varname
varname=$(head -1)
varname=$(sed 1q)
Ein Unterschied ist, dass readeine Shell eingebaut ist headund sednicht.
Gibt es außerdem einen Unterschied im Verhalten zwischen den drei?
Meine Motivation ist es, die Nuancen der Shell und der wichtigsten Dienstprogramme wie besser zu verstehen head,sed. Wenn die Verwendung headbeispielsweise ein einfacher Ersatz für ist read, warum gibt reades sie dann als integrierte Funktion?
readParameter analysiert werden können, die durch das interne Feldtrennzeichen getrennt sind$IFS. @ rameshsstraceTrick ist auch eine großartige Möglichkeit, Unterschiede zu analysieren.