[Bash] Mnożenie zmiennych tablicowych, info o procesie

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
Puszek
Sędziwy Jeż
Sędziwy Jeż
Posty: 43
Rejestracja: 28 kwie 2008, 16:58
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: Unity
Architektura: x86
Kontakt:

[Bash] Mnożenie zmiennych tablicowych, info o procesie

Post autor: Puszek »

witajcie, dziś zacząłem uczyć się basha i napotkałem na taki prosty problem. Jak dodać/pomnożyć zmienne tablicowe. Kod wygląda tak:

Kod: Zaznacz cały

tablica=("$1", "$2", "$3", "$4", "$5")
if [ "$1" -a "$2" -a "$3" -a "$4" -a "$5" ]
then
        let wynik=$tablica[0]*$tablica[1]*$tablica[2]*$tablica[3]*$tablica[4];
        echo "wynik mnozenia: $wynik";
        let wynik=$1+$2+$3+$4+$5;
        echo "wynik dodawania:  $wynik";
else
        echo "za mało argumentów, Musi być ich dokładnie 5";
fi

i jeszcze jedno, mam zadanie aby napisać skrypt wyświetlający informacje o procesie którego nazwę pobieramy przez argument wywołania skryptu. Próbuję tak ale coś mi nie wychodzi, tzn skrypt "chyba" działa ale nic nie wypisuje.

Kod: Zaznacz cały

#!/bin/bash
if [ "$1" ]  
then
        top -b -n 1 > temp;
        grep '$1' temp;
else
        echo "nie podales nazwy procesu";
fi

dzięki za odpowiedź :)

-- 10 gru 2011 17:06 --

czy nikt z użytkowników linuksa nie zna na tyle basha aby mi pomóc ?. No cóż, do trzech razy sztuka... program powinien porównać 2 teksty wprowadzone jako argumenty skryptu i wypisać czy jest leksykalnie większy, mniejszy bądź równy.

Kod: Zaznacz cały

function comp
{
	ilosc=$#;
	if [ $ilosc == 2 ]
	then
		if [ $1 -lt $2 ] #<-tu jest pierwszy błąd
		then
			echo "pierwszy jest mniejszy (-1)"; 
		elif [ $1 -gt $2 ] #<-tu kolejny
		then
			echo "drugi jest wiekszy (0)"; 		
		else
			echo "oba sa rowne (1)";
		fi
	else
		echo "zła liczba argumentów";
	fi
}
konsola wyrzuca:
./funkcje: line 59: [: ala: oczekiwano wyrażenia całkowitego
./funkcje: line 62: [: ala: oczekiwano wyrażenia całkowitego

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:

Re: [Bash] Mnożenie zmiennych tablicowych, info o procesie

Post autor: beluosus »

Widzę, że niecierpliwy jesteś więc napiszę na szybko - bez tłumaczenia (możliwe, że są jakieś błędziki ;)), lekturkę masz na końcu.

Kod: Zaznacz cały

tablica=($1 $2 $3 $4 $5)
if (( $# == 5 ))
then
        let wynik=${tablica[0]}*${tablica[1]}*${tablica[2]}*${tablica[3]}*${tablica[4]};
        echo "wynik mnozenia: $wynik";
        let wynik=$1+$2+$3+$4+$5;
        echo "wynik dodawania:  $wynik";
else
        echo "za mało argumentów, Musi być ich dokładnie 5";
fi

Kod: Zaznacz cały

#!/bin/bash

if [[ "$1" != "" ]]
then
        top -b -n 1 | grep "$1"
else
        echo "nie podales nazwy procesu";
fi

Kod: Zaznacz cały

#!/bin/bash

function comp
{
   ilosc=$#;
   if (( $ilosc == 2 ))
   then
      if [[ "$1" < "$2" ]]
      then
         echo "pierwszy jest mniejszy (-1)";
      elif [[ $1 > $2 ]]
      then
         echo "drugi jest wiekszy (0)";
      else
         echo "oba sa rowne (1)";
      fi
   else
      echo "zła liczba argumentów";
   fi
}

comp aaa bbb
comp bbb aaa
comp ccc ccc
comp x
Instrukcja warunkowa
Tablice
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

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