Skrypt Bash do przenoszenia plików


11

Jestem początkującym i potrzebuję pomocy.

Próbuję utworzyć skrypt, aby przenieść niektóre pliki z jednego katalogu do innego katalogu. Przed utworzeniem skryptu przetestowałem polecenie i działało:

mv /path/to/source  /path/to/destination

Po wykonaniu skryptu z nano:

#!bin/bash/
echo "mv /path/to/source  /path/to/destination"

Skrypt wykonałem za pomocą: chmod +x file a następnie wykonałem jako, ./fileale pojawia się następujący błąd:

bash: ./move.sh: /bin/bash/: bad interpreter: Not a directory

Próbowałem i sudo ./filebash plik, ale to nie działa.

Używam Ubuntu zainstalowanego z VirtualBox.


Powinieneś rzucić okiem na Advanced Bash-Scripting Guide .
LiveWireBT

Odpowiedzi:


20

To dlatego, że użyłeś #!bin/bash/i to jest złe. Właściwy sposób to:

#!/bin/bash

Nazywa się to shebang i mówi powłoce, z jakim programem interpretować skrypt po uruchomieniu.

Kolejna sprawa: absolutną ścieżką dla interpretera bash w Ubuntu jest /bin/bash, nie bin/bash/lub coś innego. Możesz to sprawdzić za pomocą which bashpolecenia.

I jeszcze jedno, ale zapewne wiesz o tym: następująca linia:

echo "mv /path/to/source /path/to/destination"

wyświetli tylko wiadomość tekstową z mv /path/to/source /path/to/destination. Aby naprawdę przenieść pliki, użyj następującego skryptu:

#!/bin/bash
mv /path/to/source /path/to/destination

Tak powinien wyglądać twój skrypt.


1
fyi, Ubuntu historycznie zawierał kiepską wersję niezwykle przydatnego whichpolecenia . Warto ręcznie zainstalować, aby uzyskać GNU, który .
djeikyb
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.