gpt4 book ai didi

linux - Whiptail 没有运行我的 bash 命令

转载 作者:太空宇宙 更新时间:2023-11-04 12:45:30 25 4
gpt4 key购买 nike

我使用 whiptail 创建了一个 bash 程序,为用户提供图形界面来设置他们的系统。由于某种原因,我的脚本没有运行我的任何 bash 命令,相反它似乎循环输出到我的 log.txt 文件,但没有安装包。

STATUS=0
touch log.txt
while [ $STATUS -lt 100 ]; do
# update apt repos
apt-get update
wait
echo "apt-get update" >> log.txt
let STATUS=STATUS+15
echo $STATUS
# update apt package
apt-get upgrade
wait
echo "apt-get upgrade" >> log.txt
let STATUS=STATUS+15
echo $STATUS
# install required packages
apt-get -y git-all nmap hydra
wait
echo "apt-get -y git-all nmap hydra" >> log.txt
let STATUS=STATUS+10
echo $STATUS
# install rbenv
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
wait
echo "cloning rbenv" >> log.txt
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
echo 'exporting PATH' >> log.txt
~/.rbenv/bin/rbenv init
wait
echo 'initializing rbenv' >> log.txt
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
wait
echo "cloning ruby-build" >> log.txt
rbenv install 2.1.4
wait
echo "installing ruby 2.1.4" >> log.txt
let STATUS=STATUS+25
echo $STATUS
done | whiptail --gauge "Setting Up Neo (THIS WILL TAKE SOME TIME)..." 40 78 0

因此,为了确认我的 while 循环确实在运行,我开始将内容回显到 log.txt。这是输出:

apt-get update
apt-get upgrade
apt-get -y git-all nmap hydra
cloning rbenv
exporting PATH
initializing rbenv
cloning ruby-build
installing ruby 2.1.4

我做错了什么?

最佳答案

首先,由于您没有后台进程,wait 没有做任何事情。

其次,由于 whiptail 正在读取 stdin,您需要确保来自所有 apt-get、git、rbenv 等命令的 stdout 被重定向到 stderr,或者更好的是,到您的日志。

    # update apt repos
echo "apt-get update" >> log.txt
apt-get update >>log.txt 2>&1
(( STATUS += 15 ))
echo $STATUS

# update apt package
echo "apt-get upgrade" >> log.txt
apt-get upgrade >> log.txt 2>&1
(( STATUS += 15 ))
echo $STATUS

等等。

关于linux - Whiptail 没有运行我的 bash 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38833162/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com