#!/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ď č. 1Tá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