Puncte:0

Script Bash pentru mutarea fișierelor pe baza intrării utilizatorului

drapel vn

Sunt nou în Bash și codificare în general și nu voi minți. Am nevoie de ajutor pentru o sarcină de teme în care trebuie făcut un script care cere utilizatorului un nume de fișier și apoi îl mută într-o locație desemnată.

Presupun că scriptul pentru mutarea fișierului ar fi

#!/bin/bash
mv /cale/spre/sursă /cale/spre/destinație

Dar cum implementez acest lucru atunci când îi cer utilizatorului să introducă numele fișierului, dorește să fie mutat și locația în care vrea să-l mute?

Folosesc Ubuntu instalat cu VirtualBox.

Tyberius avatar
drapel us
Tutorial similar: https://ryanstutorials.net/bash-scripting-tutorial/bash-input.php
Puncte:2
drapel in
Cas

Practic, scriptul ar cere o cale de fișier și apoi un folder pentru a pune fișierul:

#!/bin/bash

#setează variabila „fișier” la gol
fișier dezactivat

#continuați să întrebați până când (= până la buclă) variabila este completată cu o cale către un fișier
până la [[ -f „$fișier” ]]
do
        # cere utilizatorului să introducă un fișier și să salveze ceea ce este introdus în variabila „fișier”
        citește -rp „Vă rugăm să dați calea către un fișier: „
Terminat

#acum faceți același lucru pentru folderul de destinație, dar continuați să întrebați până când șirul introdus este un folder valid existent
folderul dezinstalat
până la [[ -d „$dosar” ]]
do
        citește -rp „Vă rugăm să dați calea unui folder pentru a pune fișierul în folderul: „
Terminat

#variabilele „fișier” și „folder” sunt acum umplute cu căi valide, așa că mutați fișierul
mv „$fișier” „$dosar” \ #„\” înseamnă „treceți la următoarea linie, dar tratați-o ca pe o linie mare”; doar mai ușor pentru lizibilitate
&& echo „S-a mutat $fișier în $dosar” \ #rulați acest lucru când comanda mv a reușit (din cauza &&)
|| echo "Nu s-a putut muta $fișierul în $dosar" #execuți acest lucru când comanda mv a eșuat (din cauza ||)
WinEunuuchs2Unix avatar
drapel in
Puteți adăuga un mesaj că fișierul sursă nu există. Puteți adăuga un avertisment că destinația există deja și va fi suprascrisă. Încă +1 pentru un scenariu frumos.

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.