bash read klaut leading spaces ??

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

flugwaps

Benutzer
Registriert
11. Feb. 2009
Beiträge
168
Reaktionspunkte
3
Punkte
24
Hier klaut read die führenden Leerzeichen :(
Rich (BBCode):
#!/opt/bin/bash
who  -a  > "$$"; 
echo "file $$:";cat "$$";echo -e "\nlines of $$"
#
while read line ; do 
	echo ">$line<"
	# printf "time: %s who: %s tty: %s\n" "${line:24:39}" "${line:0:12}" "${line:12:23}"
done < "$$"
rm "$$"
echo -e "\n\n\t wo sind die führenden Leerzeichen :-((\n"

output :
Rich (BBCode):
NAS1> ./last.sh
file 16746:
           system boot  2015-09-08 19:59
           run-level 2  2015-09-08 20:07                   last=1
LOGIN      console      2015-09-08 20:00              7388 id=sol
           pts/1        2015-09-08 20:30             21600 id=ts/1  term=0 exit=0
root     + pts/3        2015-10-03 09:00   .          3363 (92.193.111.237)
           pts/4        2015-09-29 14:49             24026 id=ts/4  term=0 exit=0

lines of 16746
>system boot  2015-09-08 19:59<
>run-level 2  2015-09-08 20:07                   last=1<
>LOGIN      console      2015-09-08 20:00              7388 id=sol<
>pts/1        2015-09-08 20:30             21600 id=ts/1  term=0 exit=0<
>root     + pts/3        2015-10-03 09:00   .          3363 (92.193.111.237)<
>pts/4        2015-09-29 14:49             24026 id=ts/4  term=0 exit=0<


         wo sind die führenden Leerzeichen :-((

Wo liegt (mein) Denkfehler :confused:
 
Rich (BBCode):
while IFS= read line; do
	echo ">$line<"
	# printf "time: %s who: %s tty: %s\n" "${line:24:39}" "${line:0:12}" "${line:12:23}"
done < "$$"

So gehts. field sep. ist der Knackpunkt. -r und $REPLAY brauchts nicht. (bei mir)

Danke , Schönes WE !
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat