#!/bin/bash
Clear
for ((row=1;row<=5;row++))
do
for((col=1;col<=row;col++))
do
echo -n "$row "
done
echo " "
done
我使用kali Linux。当我尝试运行此脚本时,错误显示我。
Pra20:3:pra20:语法错误:循环变量错误
答案 0 :(得分:1)
消息来自dash
,在某些Linux上用作sh
。因此,您使用的是dash
,它不支持此语法。
假设您的脚本名称为Pra20
,您可能正在运行您的脚本:
sh Pra20
而不是:
bash Pra20
或
./Pra20
只有最终方法才会读取#!
行。同时确保您拥有chmod u+x Pra20
的执行权限。
答案 1 :(得分:0)
for loop
不支持代码中使用的 shell(sh)
语法,这就是显示错误的原因。
要解决此问题,请先将脚本设为executable
,然后将run
设为
chmod +x kali.sh
./kali.sh
否则请使用以下for loop
语法
for var_name in test
do
body of for loop
done
sh
shell支持以上语法,因此您可以将脚本作为sh kali.sh
运行