Strona 1 z 1

Prosty skrypt w bashu

: 11 lut 2010, 15:52
autor: Dreedzik
Witam mam pare zadanek w bashu, niektore przekraczaja moje mozliwosci poniewaz jestem poczatkujacy dlatego prosze was o rade.

1.Napisać w bash'u skrypt, który w bieżącym katalogu policzy pliki o rozszerzeniu .html. Program ma wyświetlić na konsoli policzone pliki. Ponadto program ma utworzyć plik o nazwie plik3 w którym mają się znaleźć nazwy plików z rozszerzeniem html.

Kod: Zaznacz cały

#!/bin/bash
echo > plik3



for pliki_html in $(ls *.html)
do
numer=$((numer+1))
echo $pliki_html
echo $pliki_html >> plik3
done


echo "W katalogu sa $numer pliki html"
powiedzcie mi co robie zle ?? nie wyswietla mi nalezycie ilosci plikow .html oraz policzonych plikow html -.-



2. Ciąg arytmetyczny ? to ciąg liczbowy, w którym każdy wyraz można otrzymać dodając wyraz bezpośrednio go poprzedzający oraz ustaloną liczbę r, zwaną różnicą ciągu. Np. ciąg: (1,3,5,7,9, ...) jest ciągiem arytmetycznym (jego różnicą r jest 2). Napisać w bash'u skrypt wczytujący r (różnicę) oraz liczbę n (ilość wyrazów ciągu). Można je wczytać z parametrów lub w dowolny inny sposób. Następnie wyliczyć i wyświetlić pierwszych n wyrazów ciągu oraz podać ich sumę.

tego drugiego zadania nie kminie

jakies wskazowki ?

Odp: Problem z zadaniami w bashu

: 11 lut 2010, 16:45
autor: beluosus
Pierwsze:

Kod: Zaznacz cały

ls *.jpg > plik3
wc -l plik3 | cut -f1 -d' '
Drugie:

Kod: Zaznacz cały

#!/bin/bash

echo -n "Podaj r: "
read r

echo -n "Podaj n: "
read n

suma=0

for ((i=1; i<=$n; i+=r))
do
    echo $i
    let suma+=$i
done

echo "suma = $suma"

EDIT:
Miało być html, a nie jpg, ale to zapewne nie problem. ;)

Odp: Problem z zadaniami w bashu

: 11 lut 2010, 17:03
autor: Dreedzik
dzieki wielki bardzo mi pomogles :)

Odp: Problem z zadaniami w bashu

: 11 lut 2010, 20:14
autor: chuki
Witam a ma ktoś pomysł na takie zadanie ?

1.Utworzyć w bash'u skrypt o nazwie tworz_katalog posiadający jako parametr nazwę katalogu. Jeśli nie podamy katalogu to skrypt ma napisać komunikat o braku parametru. Jeśli podany w parametrze katalog istnieje skrypt ma napisać katalog o podanej nazwie istnieje. Jeśli katalog nie istnieje skrypt ma utworzyć katalog.

Odp: Prosty skrypt w bashu

: 11 lut 2010, 20:56
autor: thalcave
A nich będzie:

Kod: Zaznacz cały

#!/bin/sh

[ $# -ne 1 ] && echo "Podaj dokladnie 1 parametr" && exit

[ -d "$1" ] && echo "Katalog $1 juz istnieje" && exit

mkdir "$1"

Odp: Prosty skrypt w bashu

: 11 lut 2010, 21:11
autor: chuki
dzięki wielkie

Odp: Prosty skrypt w bashu

: 11 lut 2010, 21:15
autor: thalcave

Kod: Zaznacz cały

[ $# -ne 1 ] && echo "Podaj dokladnie 1 parametr" && exit
to oznacza, że jeśli liczba parametrów jest różna od 1 to wywali ten komunikat.
Jeśli koniecznie musi być dla zera parametrów to zmień

Kod: Zaznacz cały

[ $# -ne 1 ] 
na

Kod: Zaznacz cały

[ $# -eq 0] 
ale to będzie imo błąd bo skrypt nie zadziała dobrze dla 2 lub więcej parametrów (słów)... z racji, że nie sprawdzane są wszystkie czy istnieją.

Odp: Prosty skrypt w bashu

: 11 lut 2010, 21:33
autor: chuki
Do pliku o nazwie plik2 wpisz za pomocą edytora vi nazwy samochodów. Nazwy nie mogą się powtarzać. Napisz w bash'u skrypt który utworzy dla każdego samochodu katalog o nazwie samochodu w katalogu bieżącym.
Może jeszcze na to ktoś wpadnie?

Odp: Prosty skrypt w bashu

: 11 lut 2010, 21:43
autor: thalcave

Kod: Zaznacz cały

#!/bin/sh

for dir in $(cat plik2)
do
mkdir $dir
done

Odp: Prosty skrypt w bashu

: 11 lut 2010, 21:55
autor: chuki
dzięki teraz tylko powiedz jak mogę się odwzajemnić ?

Odp: Prosty skrypt w bashu

: 11 lut 2010, 21:56
autor: beluosus
Wystarczy:

Kod: Zaznacz cały

mkdir $(<plik2)
Oczywiście nie może być spacji w nazwie.

PS
@thalcave: elegancko rozwiązałeś skrypt z parametrami. ;)

Odp: Prosty skrypt w bashu

: 17 lut 2010, 23:29
autor: Pan Borowik
Czy jest komenda na zamiane pobieranych danych z "$1, ... , $n"///?
Tak by po wprowadzeniu danych w $1 sprawdzało, że jeśli podałem "http://***" zamieniało na "http://abcd:efgh@***" ? To się chyba sufix, prefix czy jakoś tak nazywało... ale chyba się mylę.

Odp: Prosty skrypt w bashu

: 18 lut 2010, 09:50
autor: beluosus

Kod: Zaznacz cały

sed 's/http:\/\//http:\/\/adsf:qwer@/'
prefiks - przedrostek (przed)
sufiks - przyrostek (po)