/ / cywin bash скрипт команда не е намерен при извикване от партида - bash, cygwin

командата cywin bash скрипт не е намерена при извикване от партида - bash, cygwin

#!/bin/bash
echo "Testing"
cd "/cygdrive/x/Internal Communications/Riccardo/"
filename=htdocs-`date +%A`.tar.gz
tar cvzf $filename "/cygdrive/c/Program Files/Zend/Apache2/htdocs"

Горният скрипт работи, когато се извиквавътре в конзолата cygwin, но когато се опитам да го нарека от партиден файл получавам "командата не е намерена" за командата за дата и тар. Мисля, че bash.exe няма настройка PATH.

Трябва да стартирам този скрипт от този партиден файл, защото искам да добавим скрипта към график за задачи.

Отговори:

9 за отговор № 1

Поставете директорията на библиотеката си (вероятно C:cygwinbin) в променливата ви за обкръжение PATH.

Това също ще ви даде полза от възможността да използвате команди като tar, ls, rm, и т.н. от обикновени конзолни прозорци, а не само конзола на Cygwin.


15 за отговор № 2

Както вече беше казано, трябва да добавите бинарите на Cygwin към вашия път. За да направите това, кликнете с десния бутон върху "Моят компютър", кликнете върху "Свойства", след това върху "Разширени", след това върху "Променливи на средата".

Създайте нова променлива за околната среда с име "CYGWIN_HOME" и стойност "C: cygwin" (или където и да сте инсталирали cygwin.

След това редактирайте променливата на средата, наречена "PATH", и прикрепете следното към края:

;% CYGWIN_HOME% бин;% CYGWIN_HOME% sbin;% CYGWIN_HOME% usrbin;% CYGWIN_HOME% usrsbin;% CYGWIN_HOME% usrlocalbin;% CYGWIN_HOME% usrlocalsbin

Затворете командния ред и го отворете отново. Следва да са налице бинарни данни cygwin. Можете да я проверите, като въведете "кой баш". Той трябва да съобщава за местоположението на вашия изпълним файл.


10 за отговор № 3

FWIW, Cygwin има Cron.

Казвате ли скрипта си по този начин?

bash --login -i ./myscript.sh

2 за отговор № 4

Ако този скрипт е извикан от командния четец на Windows, първият ред ще доведе до грешка оттогава #!/bin/bash не е разпознат командване на Windows и # не е валиден коментар разделител в партиден файл.

Така че, най-долната линия е, че този скрипт работи като обикновен партиден файл, а не от базата на Cygwin. matt b, най-вероятно нямате Cygwin изпълним път в променливата за PATH средата. Без това партидният файл не може да намери помощните програми на Cygwin (tar и date).


0 за отговор № 5

Просто имах този проблем.

Редактирането на променливата на средата работи чудесно. Но ако нямате администраторски права, не можете да направите това. В този случай можете да изпълнявате командите си, като използвате абсолютния път като:

/usr/bin/tar cvzf $filename
/usr/bin/cat $filename

Ако го направите, вашият баш скрипт работи дори ако го наречете от партиден файл.