The*_*zzy 5 linux embedded shell sh
我可能只是放屁了,但是我一生都无法弄清楚如何在shell脚本而不是bash中遍历数组。我确定答案已经在某个地方的stackoverflow上了,但是我找不到不使用bash的方法。对于我的嵌入式目标系统,bash当前不是一个选项。这是我正在尝试执行的示例以及返回的错误。
#!/bin/sh
enable0=1
enable1=1
port=0
while [ ${port} -lt 2 ]; do
if [ ${enable${port}} -eq 1 ]
then
# do some stuff
fi
port=$((port + 1))
done
Run Code Online (Sandbox Code Playgroud)
每当我运行此脚本时,都会与if语句一起返回错误“错误替换”。如果你们有什么想法,我将不胜感激。谢谢!
小智 10
a="abc 123 def"
set -- $a
while [ -n "$1" ]; do
echo $1
shift
done
Run Code Online (Sandbox Code Playgroud)
通过busybox 1.27.2 ash 输出:
abc
123
def
Run Code Online (Sandbox Code Playgroud)
BusyBox提供的ash功能不直接提供阵列支持。您可以使用eval类似
#!/bin/busybox sh
enable0=0
enable1=1
for index in 0 1 ; do
eval assign="\$enable$index"
if [ $assign == 1 ]; then
echo "enable$index is enabled"
else
echo "enable$index is disabled"
fi
done
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7441 次 |
| 最近记录: |