Титла: Създаване на sh файл - автоматично използване на команди - как? Публикувано от: ivo_18 в Dec 29, 2011, 11:32 Здравейте,
Искам да попитам, как се създава sh файл в който да бъдат добавени комадни от рода на: cp -r downloads /data/VMBACKUP Идеята ми е, да не пиша всеки път една и съща команда за копиране на дадена директория от едно място на друго, как мога да направя така, че да запиша например 10 еднакви команди но за различни директории които да се прехвърлят на едно и също място? Четох за този sh файл, че се създава от контролния терминал посредством текстов редактор след което се запаметява като .sh Kакъв е скрипта и как мога да го напиша този sh файл? Благодаря предварително. Поздрави! Титла: Re: Създаване на sh файл - автоматично използване на команди - как? Публикувано от: AMD в Dec 29, 2011, 12:37 Код
Ако някой има по-добра идея да я каже, но и този вариант работи. Титла: Re: Създаване на sh файл - автоматично използване на команди - как? Публикувано от: Филип Бонев в Dec 29, 2011, 12:52 Здравей,
Просто ще нахвърлям няколко неща :) За да напишеш скриптов файл не ти трябва нищо специално. В линукс/уникс разширението не оказва значение дали един файл е изпълним, това става от правата на файла, т.е. дадено разширение не дава права за изпълнение. За да направиш един файл изпълним трябва да изпълниш примерно: Код
В друга тема беше писал за VMWare Server мисля че там единствения редактор беше VI. Малко е сложен за хора които не са го пускали, но ще напиша няколко неща за него. Отваряне на файл с VI, ако не съществува ще се създаде. Код
При отваряне на VI не си в режим на редактиране, за да влезеш в такъв ползваш един от следните бутони: "i" - влизаш в режим редакция "o" - минаваш на нов ред и влизаш в режим редакция "a" - преместваш курсора на следващия символ и влизаш в режим редакция След като приключиш с редактирането, трябва да запишеш файл. Натискаш ESC за да излезеш от режим за редакция. Въвеждането на команди става с натискане на ":" и след това командата :w - записва файла :q - излизаш от редактора :!q - излизаш от редактора без да записваш промените :wq - записваш и излизаш Все пак може да пробваш дали случайно няма "nano" той е малко по лесен за ползване. В почти всички линукси има команден интерпретатор sh, ето и как трябва да изглежда един такъв файл: Код
Редакция: Ако ще подаваш параметри може да ползваш $1, $2 и т.н. Това са параметрите подадени на скрипта. При ползване за cp и други команди ти препоръчвам да ги слагаш в кавички примерно: Код После извикваш скрипта така Код
За повече инфо ти препоръчвам да потърсиш в gооgle за уроци по VI, Bash(скриптов интерпретатор, доста общо с простия sh и на доста дистрибуции sh е връзка към bash). Титла: Re: Създаване на sh файл - автоматично използване на команди - как? Публикувано от: ivo_18 в Dec 29, 2011, 13:12 Много благодаря за бързите отговори, имам nano editor в операционната система която в open Suse 10.0.
Да, бях пуснал тема за VMware Server, и темата е актуална защото не мога да рестартирам VMware Server-a, преди малко ъпнах темата. Извинявам се за отклонението, та по същество, ето моя примерен Sh файл, който искам да създам: Код: GNU nano 1.3.12 New Buffer Modified Как се завършва файла, има ли нещо с което се приключва преди да се запише? Трябва ли да има разстояние между командите, както аз съм ги написал с по един ред разстояние, или не трябва? Титла: Re: Създаване на sh файл - автоматично използване на команди - как? Публикувано от: Филип Бонев в Dec 29, 2011, 13:15 Махни # пред командите, това както написах оказва че реда е коментар.
Няма нищо специално за край на файл. Просто Ctrl+O за запис от нано и после Ctrl+X за изход. Код
Титла: Re: Създаване на sh файл - автоматично използване на команди - как? Публикувано от: b2l в Dec 30, 2011, 20:49 //оff
@AMD ти за цикли не си ли чувал? Титла: Re: Създаване на sh файл - автоматично използване на команди - как? Публикувано от: dejuren в Dec 30, 2011, 21:53 Махни # пред командите, това както написах оказва че реда е коментар.Последно - избягвайте използването на относителен път в скрипт, винаги използвайте пълния: Код
|