Definice a nastavení hodnoty příkazem set
Nejsou součástí prostředí, synovské procesy je nedědí.
| Proměnná | Popis |
|---|---|
| autologout | specifikuje čas nečinnosti v minutách, pro automatické odhlášení |
| argv | seznam argumentů předávaných C shellu z příkazové řádky - argv[1] obsahuje poziční parametr $1, argv[2] $2 atd | .
| cdpath | seznam adresářů pro hledání relativně zadaných adresářů v příkazech cd, popd |
| cwd | úplné jméno aktuálního adresáře |
| echo | nastaví se volbou -x při vyvolání csh, opisuje každý příkaz a jeho argumenty před provedením |
| fignore | seznam jmen souborů, pro které se ignoruje ukončovací akce na konci vstupu řádku z terminálu (např. .c, .h, .o atd.) |
| filec | nastaví ukončovací akci na konci vstupu řádky z terminálu pro jména souborů . Je-li nastavena, pak stisk CTRL D (EOF) vytiskne jména všech souborů, které začínají předcházejícím řetězcem Esc nahradí předcházející řetězec nejdelší nejednoznačnou příponou |
| hardpaths | je-li nastavena, cesty v zásobníku adresářů neobsahují symbolické linky |
| histchars | dvouznakový řetězec, v němž prvý charakter definuje znak, používaný místo ! v příkazech náhrady historie příkazů a druhý znak předefinuje standardní ^ v náhradě argumentů |
| history | počet pamatovaných řádků historie příkazů |
| home | domovský adresář, expanzní znak ~ se na tuto proměnnou odkazuje |
| ignoreoff | je-li proměnná nastavena, pak nelze opustit C shell stiskem CTRL D, ale je třeba užít exit či logout |
| seznam souborů používaných jako schránky elektronické pošty. Předchází-li jména souborů číslo, definuje časový interval prohlížení těchto schránek (přišla-li do nich nová pošta, ohlásí to C shell uživateli). Není-li číslo uvedeno, je standardní hodnota 10 minut. | |
| nobeep | potlačí pípnutí při upozornění C shellu na nejednoznačné jméno |
| noclober | je-li nastavena, zabraňuje přepisu existujících souborů přesměrováním standardního výstupu |
| noglob | nastavena zakazuje expanzi jmen souborů |
| nonomatch | nastavení ignoruje chybu, neexistuje-li soubor,jehož jméno bylo vytvořeno s použitím expanzních znaků. Nesprávný vzor je však chybou |
| notify | nastavena způsobí oznámení zpráv o ukončení prací v pozadí |
| path | seznam adresářů pro hledání příkazů - bývá ., /bin, ./usr/bin. Inicializuje se z proměnné prostředí PATH. |
| prompt | řetězec, tištěný před každým příkazem interaktivního shellu, neinteraktivní shell proměnnou nenastavuje. Pokud je součástí proměnné znak !, nahradí se aktuálním číslem příkazu. Standardně je výzva % pro obyčejného uživatele, # pro superuživatele. |
| savehistory | počet řádek historie příkazů ukládaných do souboru ~/.history při odhlašování |
| shell | soubor obsahující interpret ( /bin/csh) |
| status | návratový kód posledního příkazu (jako proměnná ? ve standardním shellu); pokud skončil abnormálně, přičte se k němu 0200. Vestavěné příkazy shellu vrací při chybě 1, jinak 0. |
| time | lze přiřadit hodnotu času v sekundách, případně
následovanou řetězcem položek, specifikujících,
jaké prostředky systému se mají sledovat.
Spotřebuje-li jakýkoliv příkaz více času CPU než
je tato hodnota, vytiskne se řádek, udávající
využití systémových prostředků. Řětězec
specifikuje, jaké prostředky se mají tisknout.
Začíná znakem % za ním následuje velké písmeno
(řetězce, nesplňující tento formát se na výstup
opíšou )”
|
| verbose | nastaví se volbou -v a vytiskne každý příkaz po náhradě historie, vhodné pro ladění |
| Operátor | Význam |
|---|---|
| ( ) | závorky |
| ~ | doplněk do jedné |
| ! | logické not |
| * / % | násobení, celočíselné dělení, zbytek po celočíselném dělení |
| + - | sčítání, odečítání |
| << >> | bitový posun vlevo,bitový posun vpravo |
| < > <= >= | menší, větší, menší nebo rovno, větší nebo rovno |
| == != | rovná se, nerovná se |
| & | bitové AND |
| | | bitové OR |
| ^ | bitové XOR |
| && | logické AND |
| || | logické OR |
| Výraz | Význam |
|---|---|
| -r soubor | pravda, má-li uživatel právo čtení |
| -w soubor | pravda, má-li uživatel právo zápisu |
| -x soubor | pravda, má-li uživatel právo spouštění |
| -e soubor | pravda, existuje-li soubor |
| -o soubor | pravda, je-li uživatel vlastníkem souboru |
| -z soubor | pravda, je-li soubor prázdný |
| -f soubor | pravda, jde-li o obyčejný soubor |
| -d soubor | pravda, jde-li o adresář |
Pokud soubor neexistuje, všechny výrazy vracejí nepravdu.
if (výraz)
jednoduchý_příkaz
if (výraz) then
seznam_příkazů
endif
if (výraz)
then
seznam_příkazů
else
seznam_příkazů
endif
if (výraz) then
seznam_příkazů
else if (výraz) then
seznam_příkazů
...
else
seznam_příkazů
endif
switch (řetězec)
case vzor1:
seznam_příkazů
breaksw
case vzor2:
seznam_příkazů
breaksw
...
default:
seznam_příkazů
breaksw
endsw
foreach proměnná(seznam_slov)
  seznam_příkazů
end
while (výraz)
  seznam_příkazů
end
V cyklech:
Návěští se píše obvyklým způsobem s dvojtečkou - tj. návěští:.
| Příkaz | Význam |
|---|---|
| dirs [-l] | vypíše obsah zásobníku aktuálních adresářů, seřazený od vrcholu ke spodku, volba l úplný výpis cesty, viz příkazy pushd a popd |
| glob seznam | vypíše na standardní výstup jména všech souborů v aktuálním adresáři, které se shodují se slovy se seznamu; slova mohou obsahovat expanzní znaky pro jména souborů |
| hashstat | vypíše statistiku úspěšných a neúspěšných startů příkazů shellu (volání exec), uložených v hašovací tabulce (nepočítají se vnitřní příkazy), pro odhad náročnosti času k nalezení příkazu |
| login | nové přihlášení do systému, staré se předtím ukončí |
| logout | odhlášení od systému |
| nice [+číslo|-číslo] příkaz |
|
| nohup [příkaz] | ignoruje signály SIGHUP příkazu. Nezadá- li se příkaz, pak platí pro všechny následující příkazy scénáře. |
| onintr [ - | návěští ] |
|
| popd [+n] | odstraní adresář s číslem n ze zásobníku a na vrcholu bude potom adresář uložený původně pod ním; ten se vypíše a nastaví se jako pracovní adresář. Položky v zásobníku jsou číslovány od vrcholu, počínajíce nulou. standardně se odstraní položka z vrcholu zásobníku (n=0). |
| pushd [+n | adresář] |
|
| rehash | přidá nový příkaz do hašovací tabulky, jinak tenko příkaz není shellu známý |
| source [-h] scénář | vykoná scénář v aktuálním shellu, jako tečka ve standardním shellu. Volba -h pouze vloží scénář do seznamu history bez skutečného provedení |
| time [příkaz] | vypíše spotřebovaný čas příkazu, bez argumentu aktuálního shellu a všech potomků |
| umask [hodnota] | maska pro vytvoření přístupových práv nových souborů a adresářů. Hodnota se zadává oktalově (viz příkaz ls a chmod v díle I) a udává, která přístupová práva nebudou povolena pro vlastníka, skupinu a a ostatní. Trojčíslí hodnoty se xoruje s 666 pro soubory a 777 pro adresáře a výsledkem jsou přístupová práva nových souborů. Implicitně bývá 002 , kompletní přístup pro skupinu a čtení pro ostatní či 022, kompletní přístup pro vlastníka, pro skupinu a ostatní pouze čtení. |
| unhash | nepoužívá se hašovací tabulka pro nalezení příkazu, ale procházejí se postupně všechny adresáře v proměnné path |
Scénář msoub, který byl naprogramován ve standardním shellu, je zde v C shellu. Funkce pouziti() a navod() bylo nutné nahradit kódem na příslušných místech, což je jedna z řady nevýhod C shellu pro programování.
# Scénář msoub pro manipulaci se soubory
#
# Příkazy: oprava, prohlídka, tisk, vymazání se zadávají
# stisknutím počátečního písmena (nerozlišují se malá a
#velká) a klávesy Enter
# Použití: msoub soubor...
#
if ( $#argv < 1 ) then
echo " Použití: menu1 soubor..." '
exit 1
endif
foreach soubor ( $* )
if ( ! -f $soubor ) then
echo "$soubor neexistuje"
endif
while ( 1 )
clear
tput cup 3 5; tput smso
echo " M A N I P U L A C E S E S O U B O R Y";
tput rmso
tput cup 4 5
echo _________________________________________________
tput cup 5 25; tput smso
echo -n "SOUBOR: "; tput rmso; echo $soubor
tput cup 7 5; tput smso
tput smso; echo -n O; tput rmso; echo -n "prava "
tput smso; echo -n P; tput rmso; echo -n "rohlídka "
tput smso; echo -n T; tput rmso; echo -n "isk "
tput smso; echo -n V; tput rmso; echo -n "ymazání "
tput smso; echo -n D; tput rmso; echo -n "alší "
tput smso; echo -n K; tput rmso; echo -n "onec "
tput cup 9 5
echo _________________________________________________
tput cup 11 5
echo -n "Vyber funkci prvním písmenem + Enter: "
tput smso
set odpoved = $<; tput rmso
switch ( $odpoved )
case [Oo]:
vi $soubor; breaksw
case [Pp]:
vi -r $soubor; breaksw
case [Tt]:
lp $soubor; breaksw
case [Vv]:
rm -i $soubor; breaksw
case [Dd]:
break
case [Kk]:
break; break
default:
endsw
end
end