Vzhľadom na nasledujúcu slučku bash:
for ((x=1; x<=$y; x++)); do echo $x; done
1
2
3
4
Ako "na pozadí" jednotlivé úlohy?
09:25:58/~ $for ((x=1; x<=$y; x++)); do echo $xi &; done
-sh: syntax error near unexpected token `;"
Snažil som sa "bash" echo a to nefungovalo ani:
09:26:37/~ $for ((x=1; x<=$y; x++)); do bash -c "echo $x" &; done
-sh: syntax error near unexpected token `;"
odpovede:
2 pre odpoveď č. 1oba &
a ;
sú terminátory príkazov v shell.
Stačí jeden príkaz ukončiť. Takže nepoužívajte obaja spolu:
for ((x=1; x<=$y; x++)); do echo $x & done
Rovnakú chybu by ste dostali dvoma ;
aj:
$ for ((x=1; x<=$y; x++)); do echo $x ; ; done
-bash: syntax error near unexpected token `;"
Všimnite si, že sa snažíte použiť ;;
dostane inú chybu, pretože ;;
je špeciálny token pre shell (použitý v case
Vyhlásenie):
-bash: syntax error near unexpected token `;;"
%start complete_command %% complete_command : list separator | list ; list : list separator_op and_or | and_or ; .... separator_op : "&" | ";" ; separator : separator_op linebreak | newline_list ;
1 pre odpoveď č. 2
for ((x=1; x<=$y; x++)); do { echo $x & } ; done
1 pre odpoveď č. 3
To bude fungovať:
for ((x=1; x<=y; x++)); do echo $x & done
Všimnite si, že nie je ;
po &
, Použitie zlomkov riadkov to zjednoduší:
for ((x=1; x<=y; x++)); do
echo $x &
done