Bash:我在 bash 脚本中有一个变量;

Bash:我在 bash 脚本中有一个变量;

我在 bash 脚本 dirs= "4"; 中有一个变量我想从另一个文件获取这个数字,所以我使用命令 dirs= sed -n '1p' < test.txt;它给我号码,我在终端上看到它。但后来在代码中,我想在目录中使用 dir 的循环..它不起作用,因为在脚本中它不理解 dir 是数字。

d= sed -n '1p' < test.txt
for dirs in $d    
do
  echo "$dirs"
done
dirs= read $dirs

speeds= sed -n '2p' < test.txt 

for speeds in $s    
do
  echo "$speeds"
done
for dir in $dirs
do
  for speed in $speeds
  do
    echo "speed=$speed   dir=$dir"
done
done

答案1

您需要使用:speeds=$(sed -n '2p' < test.txt)

实际发生的情况是 bash 看到该空间并将speeds=sed...视为不同的命令。因此它设置speeds为空字符串,然后运行sed(这就是为什么您在运行脚本时看到打印的值:它被打印到终端而不是保存到变量中)。您需要将sed命令包装起来$( )以使其在子 shell 中运行并返回输出;然后删除该空格,=将其分配给您想要的变量。

相关内容