Aiuto Script!

di il
1 risposte

Aiuto Script!

Ciao a tutti! Ho bisogno di una mano perchè devo creare uno script...lo script mi deve stampare il file aperto piu di recente e meno di recente, per la precisione se premo 1 me li stampa per la directory corrente,se premo 2 me li stampa per la directory che acquisisco da tastiera ( io acquisisco con una read $var ). Per quanto riguarda la directory corrente, quella in cui mi trovo ed è contenuto lo script .sh funziona, mentre per l'altro punto no.
Dopo aver fatto "read $var" devo far si che "$var" che contiene il path a cui voglio andare a eseguire la funzione che si occupa di stampare i file sia utilizzato. Ho provato a fare

read $var
cd $var
Funzione

Ma mi esegue lo script sempre nella directory in cui mi trovo!

1 Risposte

  • Re: Aiuto Script!

    Penso di aver trovato un modo alternativo, forse più complesso, ma penso che funzioni
    Ti scrivo un pseudocodice sintetico:
    
    input
         if(input == 1) ESEGUO FUNZIONE IN DIRECTORY CORRENTE
         else if(input == 2){
               OUT=`./CambioDirectory.exe` 
               cd $OUT
               ESEGUO FUNZIONE IN NUOVA DIRECTORY
         }
    
    Gli apici in cui è racchiuso l'eseguibile CambioDirectory.exe, non sono apici italiani, ma apicetti americani, quelli che nelle tastiere americane si trovano, insieme alla tilde, nel tasto dove noi abbiamo \ e | (in alto a sx).
    Negli script bash, gli apicetti americani servono per catturare l'output di un programma, quindi facendo OUT=`CambioDirectory.exe`, è come se tu assegnassi alla variabile OUT, l'output dell'eseguibile specificato.
    Ora ti metto il codice che genera CambioDirectory.exe (l'ho scritto in C++) (P.S. in realtà non è importante assegnargli l'estensione .exe, l'ho messo solo per fare un parallelo con windows)
    
    //CODICE C++ CHE GENERA CambioDirectory.exe
    #include <iostream>
    using namespace std
    
    int main(){
    
    char dir[70]; //70 caratteri penso che bastino per un path ;)
    cin >> dir;
    cout << dir; //questo output viene assegnato alla variabile OUT
    return(0);
    
    }
    
    
    Ora, ritornando allo pseudocodice che ho scritto prima, facendo cd $OUT, dovrebbe portarti nella directory che hai inserito te durante l'esecuzione di CambioDirectory.exe
    Per fare il cambio di directory tutto in un'unica riga di script puoi scrivere;
    
    echo "Inserisci la nuova directory: " && OUT=`./CambioDirectory.exe` && cd $OUT
    
    Se non ti è chiaro qualcosa o se non funziona dimmelo
    P.S. Capisco che è un po' artificioso, ma è l'unica alternativa che mi è venuta in mente
Devi accedere o registrarti per scrivere nel forum
1 risposte