繁体   English   中英

使用输入从文件运行 bash 脚本

[英]Run bash script from file with input

我想制作一个简单的 bash 脚本,它使用命令对文件进行 for 循环并执行这些命令,并在发生错误时完成。 我有这样的事情

#!/bin/bash
while IFS= read -r line; do
    echo $line
    output=$(eval $line)
    if [ $? -eq 0 ]
    then
        echo ok
    else
        echo $output
        break
    fi
    echo
done < summary.txt

问题是我尝试执行的第一个命令是 sudo 命令,所以我必须输入密码。 我试着把它放在命令中

sudo -S <<< password <<< Y command

没有运气。 我已经检查过,如果我直接将其放入而无需阅读它(而不是将其作为字符串放入),它是否有效。 问题是如果没有循环,程序会很长,没有多大意义。

谢谢

echo <password> | sudo -S < your command>

来自man sudo

   -S, --stdin
                 Write the prompt to the standard error and read the password from the standard input instead of using the terminal
                 device.  The password must be followed by a newline character.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM