基本的bash-Bucle用于;“未找到命令”; #/垃圾箱/垃圾箱 INF_PROC=`ps-l` for((i=1;i

基本的bash-Bucle用于;“未找到命令”; #/垃圾箱/垃圾箱 INF_PROC=`ps-l` for((i=1;i,bash,for-loop,Bash,For Loop,shebang#!/bin/sh是shell执行脚本的决定因素 由于脚本使用的是bash特有的功能,即((i=1;ii如果您正在学习bash,请确保在脚本顶部使用#!/bin/bash。使用#!/bin/sh会对您可以使用的功能施加很大的限制。请使用{}工具从鼠标上的“格式”菜单中选择文本以正确格式设置为code/data/errMsgs。祝你好运。问题是id$i=…。有人将此链接为副本。在发布之前检查你的代码。祝你好运。看起来数组比动态变量名更干净。只需使用id[i]=…和echo“${id[

shebang
#!/bin/sh
是shell执行脚本的决定因素


由于脚本使用的是bash特有的功能,即
((i=1;ii如果您正在学习bash,请确保在脚本顶部使用
#!/bin/bash
。使用
#!/bin/sh
会对您可以使用的功能施加很大的限制。请使用
{}
工具从鼠标上的“格式”菜单中选择文本以正确格式设置为
code/data/errMsgs
。祝你好运。问题是
id$i=…
。有人将此链接为副本。在发布之前检查你的代码。祝你好运。看起来数组比动态变量名更干净。只需使用
id[i]=…
echo“${id[i]}”
(我确信已经有一个q/a涵盖了这一点,但我目前找不到)。我添加了两个副本,其中的答案包括在这种情况下使用数组。它给了我相同的错误:pruebainfocomando.sh:line 7:id1=UID:command not found 1 pruebainfocomando.sh:line 7:id2=PID:command not found 2 pruebainfocomando.sh:line 7:id3=PPID:command not found 3 pruebainfocomando.sh:line 7:id4=F:command not found 4 pruebainfocomando.sh:第7行:id5=CPU:未找到命令5try
echo$INF|u PROC | cut-d'-f$i | read id$i
而不是
id$i=$(echo$INF|u PROC | cut d'-f$i)
。现在它返回1 2 3 4 5,但我需要管道中的UID、PID、PPID、CPU
Read
这些词将不起作用,因为管道中的命令在子shell中运行。使用
declare variable=value
和子shell
$()
取而代之。但更好的是:不要回答这个被回答了多次的问题。搜索重复项并将其标记为重复项。@juri\u您完全忽略了真正的问题,即分配给
id$i
#!/bin/sh
INF_PROC=`ps -l`
for (( i=1; i<5; i++ ))
do
    id$i=$(echo $INF_PROC | cut -d ' ' -f $i)
    echo $id$i
done
#!/bin/sh
INF_PROC=`ps -l`
for i in $(seq 5)
do
    id$i=$(echo $INF_PROC | cut -d ' ' -f $i)
    echo $id$i
done