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