У меня есть простой скрипт, написанный на bash, чтобы вытащить последние изменения в официальном репозитории zsh на github и собрать его.
У меня также есть другой скрипт (все еще bash), который вызывает этот и другие скрипты.
Кроме того, у меня есть ДРУГОЙ (на этот раз написано на Python), который вызывает второй сценарий.
Я заметил, что со вчерашнего дня это не давало мне такого рода ошибок, но теперь в средней точке я получаю следующее:
(eval):print:4: write error: broken pipe
(eval):4: write error: inappropriate ioctl for device
повторяется в том же порядке, что-то около 10 раз.
Это происходит только тогда, когда он вызывается вторым скриптом, вызываемым из скрипта python.
Если я вызываю это напрямую, или второй скрипт делает, но сам не вызывается из скрипта python.
Кроме того, я хотел бы указать, что я не являюсь мастером в сценариях оболочки, и я не могу изменить вещи во внутренних инструментах, необходимых для компиляции zsh.
Это скрипт zsh:
#!/bin/bash
if [[ $EUID > 0 ]] ; then
echo "You need to be root for this script."
exit
fi
cd ~/Desktop/zsh
git pull origin master
./configure --prefix=/usr \
--mandir=/usr/share/man \
--bindir=/bin \
--infodir=/usr/share/info \
--enable-maildir-support \
--enable-etcdir=/etc/zsh \
--enable-function-subdirs \
--enable-site-fndir=/usr/local/share/zsh/site-functions \
--enable-fndir=/usr/share/zsh/functions \
--with-tcsetpgrp \
--with-term-lib="ncursesw" \
--enable-cap \
--enable-pcre \
--enable-readnullcmd=pager \
--enable-custom-patchlevel=Debian \
LDFLAGS="-Wl,--as-needed -g"
make
make check
sudo make install
sudo make install.info
Это второй скрипт:
#!/bin/bash
if [[ $EUID > 0 ]] ; then
echo "You need to be root for this script."
exit
fi
echo "Building zsh."
build-zsh
clear
echo "Done building zsh, moving on to ssh."
build-ssh
clear
echo "Done building ssh, moving on to nmap."
build-nmap
clear
echo "Done building nmap."
echo "End of the script."
И это скрипт на python:
#!/usr/bin/env python3
import os
if os.geteuid() != 0:
exit("You need root privileges to run this script.")
comando = "apt-fix -y && apt-get update && apt-get -y upgrade && apt-get -y full-upgrade && apt-get -y dist-upgrade && \
apt-file update && apt -y autoremove --purge && apt -y clean"
spegnere = input ("Do you wish to turn shutdown after the process is completed? (y/n) ")
if spegnere.lower() == "y":
comando+= " && poweroff"
print("The pc will shutdown after the process is ended.")
os.system("build-all") # Second script
os.system(comando)