/ / przekazywanie ciągów do pętli while

przekazywanie ciągów do pętli while - shell

Próbuję przekazać dwa ciągi do pętli while, ale zapomniałem składni, pomóżcie mi. Właśnie tego próbuję

#!/bin/bash
while read line
do
echo "successful"
done < "var1" "var2"
exit

Wiem, że robię tutaj coś złego, zwykłem przekazywać ciągi znaków do pętli while, ale zapomniałem o składni. Proszę pomóż mi tutaj.

Jestem świadomy -

#!/bin/bash
while read line
do
echo "successful"
done < "file_containing_var1_and_var2"

ale chcę przekazać ciągi, a nie plik do pętli while, Każda pomoc jest mile widziana.

Odpowiedzi:

5 dla odpowiedzi № 1

< operator przekierowania działa tylko z plikami. do swoich wymagań użyj a for loop

#!/bin/bash


for x in "var1" "var2"
do
echo $x
done

4 dla odpowiedzi nr 2

Aby przekazać ciąg znaków do while pętli, musisz użyć tutaj <<str notacja.

$ while read line; do
echo "$line"
done <<< "This is my test line"
This is my test line

2 dla odpowiedzi nr 3
printf "%sn" "var1" "var2" |
while read line
do
echo "successful: $line"
done

The printf polecenie echo każdego argumentu w wierszu.


1 dla odpowiedzi nr 4

Możesz wykonać potok w pętli while:

#!/bin/bash
echo "var1" "var2" | while read line
do
echo "successful: $line"
set "$line"
echo "v1: $1 v2: $2"
done

Wydajność:

successful: var1 var2
v1: var1 v2: var2