![Shell-Skript echo Textname in für die Schleife mehrerer Texte](https://rvso.com/image/89135/Shell-Skript%20echo%20Textname%20in%20f%C3%BCr%20die%20Schleife%20mehrerer%20Texte.png)
Ich versuche dies zu tun
text1="word1 word2 word3"
text2="word4 word5"
text1="word6 word7 word8"
for var in $text1 $text2 $text3
do
echo $var" in "(__?__)
done
erwartete Ausgabe
word1 in text1
word2 in text1
...
word4 in text2
...
word8 in text3
- Skript wird mit Bindestrich ausgeführt -> daher sind keine Bashismen erlaubt
- Mir ist bewusst, dass Shell kein Werkzeug zur Textverarbeitung ist
- verkettet die Schleife $text1 $text2 $text3 vor der Iteration oder nicht?
Antwort1
text1="word1 word2 word3"
text2="word4 word5"
text3="word6 word7 word8"
set -f #disable globbing in unquoted var expansions (optional)
for i in text1 text2 text3; do
eval "j=\$$i" #i holds name, $j holds the fields
for k in $j; do #k holds a field
echo "$k in $i"
done
done
Ausgabe:
word1 in text1
word2 in text1
word3 in text1
word4 in text2
word5 in text2
word6 in text3
word7 in text3
word8 in text3