Druhy příkazů, proměnné, matematika

Druhy příkazů

Dosud jsme nerozlišovali typ použitých příkazů. Vlastní příkaz může být název spustitelného souboru, který tvoří nějaký program, může to být ale i vestavěná funkce shellu nebo třeba alias. Příkazy jako ls, grep, cat či ssh jsou názvy spustitelných souborů, tedy programy. Naopak třeba příkaz cd je vestavěnou funkcí shellu, není to žádný konkrétní program, podobně jako třeba echo. Této znalosti můžete využít, pokud budete v prostředí, kde máte sice shell, ale už ne jednotlivé programy jako ls. Program ls můžete nahradit právě použitím vestavěné funkce shellu echo:

  echo *

Poslední kategorií jsou aliasy. Ty můžete specifikovat vedle dalších nastavení ve svém ~/.bashrc. Alias je jiné jméno pro nějaký příkaz. Můžete si tak namapovat nějaký komplikovanější příkaz na snadno zapamatovatelný alias:

  alias la='ls -la'

Pokud by se vám stýskalo po označeních jednotek písmeny, můžete si pomoci třeba takto:

  alias c:='cd /mnt/windows'

Pokud máte příkaz a netušíte, co je zač, můžete zkusit vestavěnou funkci shellu type:

  type prikaz

Proměnné

Proměnné slouží k uložení určitých hodnot či řetězců. Začněme proměnnými prostředí. O jedné jsme už několikrát mluvili, a sice o vyhledávací cestě, která se prohledává při zadání nějakého příkazu, který shell nerozpozná jako vestavěnou funkci. Proměnná se jmenuje PATH a její obsah můžeme zobrazit takto:

  echo $PATH

Všechny proměnné prostředí můžeme vypsat pomocí příkazu set:

  set

Další zajímavou proměnnou prostředí je PS1, která určuje tvar výzvy (prompt). Výzva vypadá třeba takto:

  [michal@griffon ~]$

Mnoho informací o proměnných prostředí naleznete v manuálu bashe:

  man bash

Proměnné nemusí ale být jenom proměnné prostředí. Můžete si je tvořit sami, což se zejména ve skriptech velice hodí. Proměnnou vytvoříte pomocí znaku = (rovná se):

  PROMENNA="Moje proměnná."

Vlevo je název proměnné, vpravo za = je její hodnota. Tento zápis netoleruje mezery. Pokud byste = oddělili mezerami, nebude to fungovat.

Hodnotu proměnné můžete dosadit kamkoliv, pokud před název proměnné zapíšete znak dolaru:

  echo $PROMENNA

Ukažme si malý skriptík s proměnnou:

  #!/bin/bash
       
  LOG="~/log.txt"
  cp soubor /tmp 2&>$LOG

Ano, je to velmi primitivní příklad, a jak správně tušíte, tento skript překopíruje soubor soubor do adresáře /tmp a veškeré případné chybové hlášky zapíše do souboru, který je specifikován v proměnné LOG. Pokud budete tvořit složitější skript, vyplácí se nějaké statické hodnoty (třeba adresáře, soubory, apod.) specifikovat v proměnných. Pak, když budete potřebovat hodnoty změnit, nemusíte procházet celý soubor a měnit všechny výskyty dané hodnoty, změníte pouze hodnotu v proměnné.

Do proměnných můžete přirozeně ukládat i výstup nějakého příkazu:

  PROMENNA=$(ps au | grep "bash")

Matematika

Základní matematiku (celočíselné operace) provádí následující syntax:

  $((vyraz))

Za vyraz stačí dosadit nějakou matematickou operaci, třeba:

  $((4+5*(5-20/5)))

Operace vyžadující plovoucí desetinnou čárku můžete provádět pomocí programu bc. Jeho použití je ale trošku složitější:

  echo "scale=2; 4*4-6*(1/25)" | bc

Proměnná scale nastavuje počet desetinných míst. Přirozeně, na místě pro jednotlivá čísla můžete uvádět proměnné a výsledek ukládat do jiných proměnných.

Kam dál

pokrocili/komandlajna/promenne_matika.txt · Poslední úprava: 2009/11/12 17:22 autor: Michal Dočekal
CC Attribution-Share Alike 3.0
www.chimeric.de Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0 PDF Export