/ Chyba syntaxe: Zlé pre premennú cyklu [duplicate] - linux, bash

Chyba syntaxe: Zlý pre premennú cyklu [duplicate] - linux, bash

#!/bin/bash

Clear
for ((row=1;row<=5;row++))
do
for((col=1;col<=row;col++))
do
echo -n "$row "
done
echo "  "
done

Používam kali Linux. Keď sa pokúšam spustiť tento skript, zobrazí sa mi chyba.

Pra20: 3: pra20: Chyba syntaxe: Zlý pre premennú slučky

odpovede:

1 pre odpoveď č. 1

Táto správa pochádza z dash, ktorý sa používa ako sh na niektorých Linuxoch. Preto používate dash, ktorý túto syntax nepodporuje.

S predpokladom, že je vaše meno skriptu Pra20, pravdepodobne spúšťate skript takto:

sh Pra20

namiesto:

bash Pra20

alebo

./Pra20

Iba posledná metóda bude čítať #! linka. Takisto sa uistite, že máte spustený prístup s chmod u+x Pra20.

Pozri tiež: syntax slučky pre skript linux shellu


0 pre odpoveď č. 2

for loop syntax použitý vo vašom kóde nie je podporovaný shell(sh) to je dôvod, prečo zobrazuje chybu.

na vyriešenie tohto problému buď najskôr vytvorte skript ako executable a potom run ako

chmod  +x  kali.sh
./kali.sh

V opačnom prípade použite nižšie for loop syntax

for var_name in test
do
body of for loop
done

nad syntax podporuje sh shell, takže môžete spustiť skript ako sh kali.sh