Prosty skrypt w bashu

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
Dreedzik
Piegowaty Guziec
Piegowaty Guziec
Posty: 2
Rejestracja: 11 lut 2010, 15:38
Płeć: Mężczyzna
Wersja Ubuntu: 9.04
Środowisko graficzne: GNOME
Architektura: PPC

Prosty skrypt w bashu

Post 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 ?
Awatar użytkownika
beluosus
Zakręcona Traszka
Zakręcona Traszka
Posty: 695
Rejestracja: 01 paź 2006, 15:32
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Xfce
Architektura: x86
Kontakt:

Odp: Problem z zadaniami w bashu

Post 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. ;)
Kurs Linuksa: for i in $(ls /bin); do man $i; done
__________________
http://beluosus.pl/
Dreedzik
Piegowaty Guziec
Piegowaty Guziec
Posty: 2
Rejestracja: 11 lut 2010, 15:38
Płeć: Mężczyzna
Wersja Ubuntu: 9.04
Środowisko graficzne: GNOME
Architektura: PPC

Odp: Problem z zadaniami w bashu

Post autor: Dreedzik »

dzieki wielki bardzo mi pomogles :)
chuki
Piegowaty Guziec
Piegowaty Guziec
Posty: 8
Rejestracja: 30 sie 2009, 12:42
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME

Odp: Problem z zadaniami w bashu

Post 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.
Awatar użytkownika
thalcave
Przyjaciel
Przyjaciel
Posty: 821
Rejestracja: 08 lis 2006, 12:17
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Fluxbox
Architektura: x86

Odp: Prosty skrypt w bashu

Post 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"
GNU/Linux user
Na pytania na PW/e-mail nie udzielam odpowiedzi!
Szanujmy innych użytkowników!
Wesprzyj akcje: Temat rozwiązany -> dodajemy [solved]
chuki
Piegowaty Guziec
Piegowaty Guziec
Posty: 8
Rejestracja: 30 sie 2009, 12:42
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME

Odp: Prosty skrypt w bashu

Post autor: chuki »

dzięki wielkie
Awatar użytkownika
thalcave
Przyjaciel
Przyjaciel
Posty: 821
Rejestracja: 08 lis 2006, 12:17
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Fluxbox
Architektura: x86

Odp: Prosty skrypt w bashu

Post 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ą.
GNU/Linux user
Na pytania na PW/e-mail nie udzielam odpowiedzi!
Szanujmy innych użytkowników!
Wesprzyj akcje: Temat rozwiązany -> dodajemy [solved]
chuki
Piegowaty Guziec
Piegowaty Guziec
Posty: 8
Rejestracja: 30 sie 2009, 12:42
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME

Odp: Prosty skrypt w bashu

Post 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?
Awatar użytkownika
thalcave
Przyjaciel
Przyjaciel
Posty: 821
Rejestracja: 08 lis 2006, 12:17
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Fluxbox
Architektura: x86

Odp: Prosty skrypt w bashu

Post autor: thalcave »

Kod: Zaznacz cały

#!/bin/sh

for dir in $(cat plik2)
do
mkdir $dir
done
GNU/Linux user
Na pytania na PW/e-mail nie udzielam odpowiedzi!
Szanujmy innych użytkowników!
Wesprzyj akcje: Temat rozwiązany -> dodajemy [solved]
chuki
Piegowaty Guziec
Piegowaty Guziec
Posty: 8
Rejestracja: 30 sie 2009, 12:42
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME

Odp: Prosty skrypt w bashu

Post autor: chuki »

dzięki teraz tylko powiedz jak mogę się odwzajemnić ?
Awatar użytkownika
beluosus
Zakręcona Traszka
Zakręcona Traszka
Posty: 695
Rejestracja: 01 paź 2006, 15:32
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Xfce
Architektura: x86
Kontakt:

Odp: Prosty skrypt w bashu

Post 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. ;)
Kurs Linuksa: for i in $(ls /bin); do man $i; done
__________________
http://beluosus.pl/
Awatar użytkownika
Pan Borowik
Piegowaty Guziec
Piegowaty Guziec
Posty: 12
Rejestracja: 26 sie 2009, 18:36
Płeć: Mężczyzna
Wersja Ubuntu: 9.04
Środowisko graficzne: GNOME

Odp: Prosty skrypt w bashu

Post 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ę.
Prawo Godwina: Wraz z trwaniem dyskusji w Internecie prawdopodobieństwo przyrównania czegoś lub kogoś do nazizmu bądź Hitlera dąży do 1.
Awatar użytkownika
beluosus
Zakręcona Traszka
Zakręcona Traszka
Posty: 695
Rejestracja: 01 paź 2006, 15:32
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Xfce
Architektura: x86
Kontakt:

Odp: Prosty skrypt w bashu

Post autor: beluosus »

Kod: Zaznacz cały

sed 's/http:\/\//http:\/\/adsf:qwer@/'
prefiks - przedrostek (przed)
sufiks - przyrostek (po)
Kurs Linuksa: for i in $(ls /bin); do man $i; done
__________________
http://beluosus.pl/
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 26 gości