Puncte:3

Nu se poate instala un fișier .sh

drapel ph
AKA

Încerc să folosesc un pachet numit mgl-tools și când rulez ./install.sh, nu funcționează. Funcționa acum câteva zile.

Eroarea:

./install.sh 
Instalarea MGLTools pe /home/aka/Desktop/Expt 10/mgltools_x86_64Linux2_1.5.7
Instalarea Python Interpreter la 
tar (copil): /home/aka/Desktop/Expt: Nu se poate deschide: Nu există un astfel de fișier sau director
tar (copil): eroarea nu poate fi recuperată: se iese acum
tar: Copilul a revenit statutul 2
tar: eroarea nu este recuperabilă: se iese acum
Eroare la instalarea Python

Conținutul fișierului .sh:

#!/bin/sh

# Script de instalare MGL Tools
pythonargs=" "
pyoptimize=0
TarDir=`pwd`
export MGL_ROOT=""

# Analizați argumentele liniei de comandă
opts=`getopt "hlc:d:" "$@"`
dacă [ "$?" != 0 ]
atunci
   echo „Utilizare: sursă install.sh [-d InstDir] [-c optimizare]”
   Ieșire
fi
set -- $opt
in timp ce :
do
    cazul „$1” în 

    -c) schimb; pythonargs="$pythonargs -c"; pyoptimize="$1";;
    -d) schimb; export MGL_ROOT="$1";;
    -l) pythonargs="$pythonargs -l";;
     
    -h) echo „Parametri opționali:”
    echo „[-h] mesaj de ajutor;”
    echo „[ -d InstDir] specifică directorul de instalare (directorul curent implicit)”
    echo „[ -c optimizare] compila codul Python cu sau fără optimizare:”
    echo " 0 - fără optimizare (generează fișiere .pyc)"
    echo " 1 - cu optimizare (generează fișiere .pyo);"
    Ieșire ;;
    --) pauză;;
    esac
    schimb
Terminat

if [ "$MGL_ROOT" != "" ]; atunci
    # verificați dacă utilizatorul are acces de scriere la directorul de instalare
    dacă [ -e "$MGL_ROOT" ]; atunci
    dacă [ -d "$MGL_ROOT" ]; atunci
        dacă [ ! -w „$MGL_ROOT” ]; atunci 
        echo "Nu se poate finaliza instalarea - directorul specificat $MGL_ROOT nu are acces de scriere."
        iesirea 1

        fi
    altfel 
        echo „$MGL_ROOT” nu este un director
        iesirea 1
    fi
    altfel 
    echo Se creează directorul „$MGL_ROOT”
    mkdir „$MGL_ROOT”
    fi

altfel
    export MGL_ROOT="$(pwd)"
fi

echo „Instalarea MGLTools în $MGL_ROOT”

cd „$MGL_ROOT”
echo „Se instalează Python Interpreter în $MLG_ROOT”
tar xzvf $TarDir/Python*.tar.gz

dacă [ "$?" != 0 ]; atunci
    echo „Eroare la instalarea Python”
    iesirea 1
fi
echo Python instalat, vă rugăm să așteptați ca restul MGLTools să fie instalat 

cd $TarDir

## platforma pe care rulăm

export MGL_ARCHOSV=`$TarDir/Tools/archosv`

## adaugă calea către directorul care deține interpretul Python la calea ta

export PATH="$MGL_ROOT/bin:"$PATH

## folosește interpretul Python instalat local

PYTHON="$MGL_ROOT/bin/python"
export PYTHONHOME="$MGL_ROOT"
if [ "`uname -s`" = "Linux" ] ; atunci
    export LD_LIBRARY_PATH="$MGL_ROOT/lib"
fi

## rulați scriptul python - install.py - pentru a instala pachete MGL și a crea scripturi pmv, adt și vision

if [ "$pyoptimize" -eq 1 ]; atunci
    echo „Rulează $PYTHON -O Tools/install.py $pythonargs”
    $PYTHON -O Tools/install.py $pythonargs
altfel
    echo „Rulează $PYTHON Tools/install.py $pythonargs”
    $PYTHON Tools/install.py $pythonargs
fi

dezactivați PYTHONHOME
N0rbert avatar
drapel zw
Care este versiunea ta de Ubuntu?
AKA avatar
drapel ph
AKA
Ubuntu 20.04.3 LTS
drapel us
Care este conținutul fișierului .sh? Vă rugăm să copiați lipiți textul în loc să publicați capturi de ecran. Editează, de asemenea, întrebarea pentru a-ți adăuga informații, nu le posta în comentarii.
Puncte:5
drapel cn

Scripturilor Shell nu le plac spațiile în nume. Vă rugăm să încercați să redenumiți directorul EXPT 10 la un nume fără spații; de exemplu, EXPT10 și apoi încercați din nou.

EDITAȚI | ×: După cum subliniază în mod corect @cocomac, scripturile scrise corect pot și ar trebui să ia în considerare spațiile în nume. Dacă a dvs. nu o face, redenumirea fișierului este soluția adecvată. Rescrierea scenariului și depunerea unei probleme la editor este o altă soluție.

cocomac avatar
drapel cn
@AKA În teorie, un script shell bine conceput [poate gestiona foarte bine spațiile] (https://unix.stackexchange.com/q/131766/495409). Acesta nu (au uitat să citeze o variabilă, pe care ar fi descoperit-o dacă autorul (autorii) [l-ar fi rulat prin ShellCheck](https://www.shellcheck.net/). Dacă scriptul a fost scris cu citând (ceea ce nu a fost), ar trebui să poată gestiona spațiile foarte bine.Nu sunt de acord cu chili555, un script proiectat corespunzător ar trebui să poată gestiona spațiul foarte bine.
chili555 avatar
drapel cn
@cocomac Mulțumesc pentru informații suplimentare. Am adăugat și editat. Consider că cea mai practică soluție pentru utilizatorul tipic AU este redenumirea, nu modificarea codului.
cocomac avatar
drapel cn
Bine ati venit! Sunt cu siguranță de acord, modificarea scripturilor shell (de instalare) este complexă și nu este foarte practică pentru utilizatorul obișnuit, am vrut doar să subliniez că scripturile shell, în general, pot gestiona spații, atunci când sunt programate corect

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.