znaczacy > comp.os.* > comp.os.linux.programowanie

Jivanmukta (31.08.2019, 11:37)
Pisze skrypt dirtyphp.sh w bashu. W skrypcie mam instrukcje
cp -R "$1" "$2"
gdzie $1 i $2 to parametry mojego skryptu.
Przy wywolaniu:
bash -x dirtyphp.sh "~/dirtyphp (gotowy)" "~/dirtyphp"
mam blad cp, nie rozumie ~.
Jak mam to napisac, zebym mógl wywolywac mój skrypt takze dla sciezek ze
znakiem tyldy? Myslalem ze powloka rozwinie ~ i zostanie wykonane:
dirtyphp.sh "/home/robert/dirtyphp (gotowy)" /home/robert/dirtyphp
Kamil Jońca (31.08.2019, 11:53)
Jivanmukta <jivanmukta> writes:

> Piszę skrypt dirtyphp.sh w bashu. W skrypcie mam instrukcję
> cp -R "" ""
> gdzie i to parametry mojego skryptu.
> Przy wywołaniu:
> bash -x dirtyphp.sh "~/dirtyphp (gotowy)" "~/dirtyphp"
> mam błąd cp, nie rozumie ~.
> Jak mam to napisać, żebym mógł wywoływać mój skrypt także dla ścieżek
> ze znakiem tyldy? Myślałem że powłoka rozwinie ~ i zostanie wykonane:
> dirtyphp.sh "/home/robert/dirtyphp (gotowy)" /home/robert/dirtyphp


Strzelam (dawno basha nie używałem) że "" powodują, że tylda się nie
rozwija.

por.

KJ
Jivanmukta (31.08.2019, 12:03)
W dniu 31.08.2019 o 11:53, Kamil Jońca pisze:
> Jivanmukta <jivanmukta> writes:
> Strzelam (dawno basha nie używałem) że "" powodują, że tylda się nie
> rozwija.
> por.
> KJ

Masz rację. Potrzebuję zrobić tak, żeby można było wpisać i tyldę i
spację. Jak to osiągnąć?
Jivanmukta (31.08.2019, 12:22)
W dniu 31.08.2019 o 12:03, Jivanmukta pisze:
> W dniu 31.08.2019 o 11:53, Kamil Jońca pisze:
> Masz rację. Potrzebuję zrobić tak, żeby można było wpisać i tyldę i
> spację. Jak to osiągnąć?


Acha, już wiem: ~/"dirtyphp (gotowy)"
Jivanmukta (31.08.2019, 14:35)
W dniu 31.08.2019 o 12:22, Jivanmukta pisze:
> W dniu 31.08.2019 o 12:03, Jivanmukta pisze:
> Acha, już wiem: ~/"dirtyphp (gotowy)"


Mam jeszcze problem z instrukcją for. Iteruję po plikach w podanym w $1
katalogu, którego nazwa może zawierać spację, np.
"/home/robert/dirtyphp (gotowy)"
i dostaję osobno $f równe "(gotowy)/plik.php":

for f in $(find "$1" -name '*.php' -type f -print 2>/dev/null)

Jak to zrobić żeby mieć "/home/robert/dirtyphp (gotowy)/plik.php" a nie
"(gotowy)/plik.php"?
Podobne wątki