#!/bin/bash
x=1;
while [ $x -le 10 ] ; do
echo "Napis pojawił się po raz: $x"
x=$[x + 1]
done
zapisałem do pliku i wklepałem:
bash web_print.bash
w odpowiedzi dostaję:
: Nie ma takiego pliku ani kataloguash
web_print.bash: line 2: $'\r': nie znaleziono polecenia
web_print.bash: line 6: bĹÄ
d skĹadni przy nieoczekiwanym znaczniku `done'
web_print.bash: line 6: `done'
Co jest nie tak?
System to najnowszy Debian (7.4) amd64.
P.s Jeśli tytuł wątku jest zły, to proszę o lepsze propozycję. Nie mam pomysłu jak mój problem opisać.
jeśli uruchamiasz program lokalnie = w tym katalogu co jesteś to musisz przed jego nazwą wstawić ./ tak jak poniżej
./web_print.bash
oczywiście na plik muszą być nałożone za pomocą chmod prawa +x do możliwości uruchamiania tego pliku...
no i przypadkiem nie nałożone noexec na partycje z której odpalasz program w pliku /etc/fstab
[yampress@debian ~]$ chmod +x 1
[yampress@debian ~]$ ./1
Napis pojawił się po raz: 1
Napis pojawił się po raz: 2
Napis pojawił się po raz: 3
Napis pojawił się po raz: 4
Napis pojawił się po raz: 5
Napis pojawił się po raz: 6
Napis pojawił się po raz: 7
Napis pojawił się po raz: 8
Napis pojawił się po raz: 9
Napis pojawił się po raz: 10
[yampress@debian ~]$
[yampress@debian ~]$ cat 1
#!/bin/bash
x=1;
while [ $x -le 10 ] ; do
echo "Napis pojawił się po raz: $x"
x=$[x + 1]
done[yampress@debian ~]$
A na pewno ten plik się tak nazywa jak piszesz ? Wydaj polecenie ls w tym katalogu
A bash masz zainstalowany ?
[yampress@debian ~]$ dpkg -l |grep bash
ii bash 4.2+dfsg-1 amd64 GNU Bourne Again SHell
[yampress@debian ~]$
I zauważ że tam jest średnik ; a nie dwukropek : gdzieniegdzie...
Czyli wszystko powinno być ok. bash zainstalowany, uprawnienia są, plik tak jak ma się nazywać tak się nazywa, jedynie jakaś literówka w samym pliku...
EDIT
#!/bin/bashx=1; while [ $x -le 10 ] ; do echo "Napis pojawia sie po raz: $x" x=$[x + 1] done
a teraz
#!/bin/bash
x=1; while [ $x -le 10 ] ; do echo "Napis pojawia sie po raz: $x" x=$[x + 1] done
Yampress, Sprawdziłem oba skrypty, ale nadal ten sam błąd. Pliki edytuje w nano przez ssh pod Windows, ale na Debianie 7.2 też tak robiłem i nie było problemów...
Co robię źle?
Tak, Putty. Zmieniłem właśnie kodowanie na UTF-8, napisałem plik od nowa w vim-ie, ale błąd ten sam (teraz z pl znakami):
-bash: ./web_print.bash: /bin/bash^M: zły interpreter: Nie ma takiego pliku ani katalogu
Po napisaniu pliku w nano jest to samo.
Może ktoś napisać to u siebie i wrzucić plik? Jeśli zadziała u kogoś i umie to problem z kodowanie, etc. a jeśli zadziała u kogoś, a u mnie nie to problem z czymś innym.
Dla kodu z pliku web_print3.bash:
#!/bin/bash
echo "test"
Też wywala błąd:
-bash: ./web_print3.bash: /bin/bash^M: zły interpreter: Nie ma takiego pliku ani katalogu
Po zmianie #!/bin/bash na #!/bin/sh też jest ten prawie identyczny błąd (tylko sh zamiast bash)