我想在bash中创建一个for循环,从1运行到存储在变量中的数字bash.我已经尝试过做这个问题的答案,但它产生了这个错误:
Syntax error: Bad for loop variable
Run Code Online (Sandbox Code Playgroud)
我的操作系统是Ubuntu 12.04,代码如下:
#!/bin/bash
TOP=10
for ((i=1; i<=$TOP; i++))
do
echo $i
done
Run Code Online (Sandbox Code Playgroud)
这个错误信息是什么意思?这是一个输出图像:

C-style for循环只能用于少量shell,而bash就是其中之一.这是语法不是POSIX标准的一部分.
#!/bin/bash
TOP=10
for ((i=1; i<=$TOP; i++))
do
echo $i
done
Run Code Online (Sandbox Code Playgroud)
符合POSIX标准的for循环将如下所示
#!/bin/bash
TOP=10
for i in $(seq 1 $TOP)
do
echo $i
done
Run Code Online (Sandbox Code Playgroud)
这在bash和sh中都有效.
要了解您登录的shell,请执行以下命令
ps -p $$
Run Code Online (Sandbox Code Playgroud)
其中$$是当前进程的PID,当前进程是您的shell,ps -p并将打印有关此进程的信息.
要更改登录shell使用chsh命令.
| 归档时间: |
|
| 查看次数: |
5979 次 |
| 最近记录: |