首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从带有输入的文件运行bash脚本

从带有输入的文件运行bash脚本
EN

Stack Overflow用户
提问于 2020-03-18 02:41:48
回答 1查看 220关注 0票数 0

我想创建一个简单的bash脚本,该脚本在带有命令的文件上执行for循环并执行这些命令,并在发生错误时结束。我有这样的东西

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/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命令,所以我必须输入密码。我试着把它放入命令中,如下所示

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo -S <<< password <<< Y command

不走运。我已经检查过,如果我直接将其放入而不需要读取它(而不是将其放入字符串),那么它是有效的。问题是,如果没有循环,程序就会很长,没有太多意义。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2020-03-18 02:51:30

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
echo <password> | sudo -S < your command>

来自man sudo

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   -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.
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60732802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文