linux - 在 bash shell 上循环 "for..do"

标签 linux bash shell loops

如何在 bash shell 中执行 for do 循环来执行某些应用程序?

我有下面的代码,我想运行usb-servo应用程序,给定usb-servo的值从190到225,我尝试运行代码,但是for do没有给出任何输出,我的伺服器没有移动。

#! /bin/sh
i=190

sleep 0.4
for (( i=190;i<=225;i++ ))
do
echo my_pass | sudo -S /usr/bin/usb-servo set 0 $i
done

#echo my_pass | sudo -S /usr/bin/usb-servo set 0 195
#echo my_pass | sudo -S /usr/bin/usb-servo set 0 200
#echo my_pass | sudo -S /usr/bin/usb-servo set 0 205
#echo my_pass | sudo -S /usr/bin/usb-servo set 0 210
#echo my_pass | sudo -S /usr/bin/usb-servo set 0 215
#echo my_pass | sudo -S /usr/bin/usb-servo set 0 220
#echo my_pass | sudo -S /usr/bin/usb-servo set 0 225

最佳答案

您的循环看起来不错,但您也可以使用范围进行尝试,看看是否打印出您想要的内容:

for i in {190..225}; do
    echo my_pass | sudo -S /usr/bin/usb-servo set 0 $i
done

如果这个循环和您的循环都没有打印出预期的输出,则问题不在于循环。可能是您的 usb-servo 命令存在问题。

关于linux - 在 bash shell 上循环 "for..do",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12292230/

相关文章:

python - 有没有办法备份 Python 模块?

linux - 获取 for 循环 shell 脚本中完成作业的平均时间

linux - virsh destroy 和 virsh undefine 有什么区别

mysql - 将每个 mysql 记录(多行)存储为 bash 中的变量

linux - Bash 脚本 - 如何只匹配 4 字节十六进制值中的 1 个字节

linux - 文件夹充满了 10M+ 日志文件,我无法删除它们

python - 在 MAC OS 或 Linux 中创建快捷方式链接文件或文件夹

html - 使用 CentOS 中的脚本发送 HTML 格式的电子邮件在 MS Outlook 中不起作用

python - 如何创建一个脚本来获取用户输入并在使用 python 3.6 的终端命令中使用它?

mysql - Docker错误: container id followed by "command not found"