������� ������� - ��� ������������������ ����, ����������� ���������. ������ ����� �������� ������ �������, ������� ����� �����������, � ��������� ����� �������� �� ��� ���������. ��� ������� ���������� �� ��� �������� ����� 0 (�.�. ��� ������� �������� ��������� $0). ��������, ������������ ������� �������� - ��� �� ������ ����������, ���� ��� ����������� ���������, ��� (������������) 200+������, ���� ��� ����������� ��������.
������ - ��� ������������������ ������ ��� ���������� ����������, ����������� ��������� ;, &, && ��� || � ���� ����� ��������������� �������� ; ��� &. �� ������� ��������� �������� ; � & ����� ������ ����������, �������, ��� � && � ||. ���������� ��������� ����� ����� ����� �����. ������ ; ��������, ��� ��������� ����� ����������� ���������������, � & - �����������. �������� && (||) ��������, ��� ������, ��������� �� ��� ����� ����������� ���� � ��� ������, ���� ��� ���������� ����������� ��������� ������� (���������).
������� - ��� ���� ������� �������, ���� ���� �� ����������� �����������. ����� ���������� ������� �������� ��� ���������� �� ��������� ������� �������.
for <����������> [ in <�����> ] do <������> done
���� ����� in <�����> �������, �� ��� �������� in "$@" ( �� ���� in $1 $2 ... $n). ������. ������� �� ����� ��� ���������� ����� ������� ����������:
for f in *.for do cat $f done
case $<����������> in <������> | <������>... ) <������> ;; . . . esac
�������� ������ ��������� <������>, ��������������� ������� <�������>, �������� ������������� <����������>. ����� ������� �� ��, ��� � ������������ ��� ��������� ���� ������. ����� | ������... ����� �������������.
������. ���������� ����� � ��������������� ��� ��������� �����.
# ���������������� ���� flag= # ��������� ��� ������� ��������� for a do case $a in # ��(r)������� �����, �������� �� ��������� -[ocSO]) flag=$flag' ' $a ;; -*) echo 'unknown flag $a' ;; # ������������� ������ �������� ���� � �������� ����� *.c) cc $flag $a; flag= ;; *.s) as $flag $a; flag= ;; *.f) f77 $flag $a; flag= ;; # �������� �������� *) echo 'unexpected argument $a' ;; esac done
if <������1> then <������2> [ elif <������3> then <������4> ] . . . [ else <������5> ] fi
����������� <������1> �, ���� ��� ��� ���������� 0, �� ����������� <������2>, ����� - <������3> �, ���� � ��� ��� ���������� 0, �� ����������� <������4>. ���� �� ��� �� ���, �� ����������� <������5>. ����� elif � else ����� �������������.
while <������1> do <������2> done
�� ��� ���, ���� ��� ���������� ��������� ������� <������1> ���� 0, ����������� ������� <������2>. ��� ������ ���������� ����� while �� until ������� ������ �� ����� �������� �� ���������������.
� �������� ����� �� ������ <������1> ����� ���� ������� true (false). �� ���� ������� �� ����������� ������� ��������, � ��� ���������� ��������������� 0 (-1). ��� ������� ����������� ��� ����������� ����������� ������. ����� �� ������ ����� ����� ����������� ���� �� ������� break (��. ����������� �������).
<���> () { <������>; }
������������ ������� � ������ <���>. ���� ������� - <������>, ����������� ����� { � }.
��������� ����� �������� ������������������:
if then else elif fi case in esac { } for while until do done
��� �������, ��� ���������� ������ ������� shell ��������� ��������� �������. ����������� ������� ���������� ���, ��� ��� �������� � shell � ����������� � ������ �������� ��������.
: | ������ �������. ���������� ������� ��� ����������. | |
. file | Shell ������ � ��������� ������� �� ����� file, ����� �����������; ��� ������ file ������������ ������ ������ $PATH. | |
break [n] | ����� �� ����������� for ��� while �����; ���� ������� n, �� ����� �� n ���������� ������. | |
continue [n] | ������� � ��������� �������� ����������� for ��� while �����; ���� ������� n, �� ������� � ��������� �������� n-��� �����. | |
cd [ <��������> ] | ������� ������� ���������� �� ���������� <��������>. �� ��������� ������������ �������� HOME. | |
echo [ <���> ... ] | ������� ���� ��������� � ����������� �����, �������� �� ���������. | |
eval [ <���> ... ] | ��������� ��������, ��� ���� �� ��� ��������� �� ������������ ����� � ��������������� ��� �������, ������� ��� �� � �����������. | |
exec [ <���> ... ] | ��������� ��������������� ��� ������� shell'� � ��� �� �����������, �� ��� ���� �� ��������� ������ ��������. � �������� ���������� ����� ���� ������� ����������� �����-������ �, ���� ��� ������� ������ ����������, �� ����� �������� ���� ����������� �����-������ ������� ���������. | |
exit [ n ] | ���������� ���������� shell'� � ����� ���������� n. ���� n �������, �� ����� ���������� ����� ��� ���������� ��������� ����������� ������� (����� ����� ����� �������� � ���������� ����������). | |
export [ <����������> ... ] | ������ ���������� ���������� ��� ��������������� �������� � ��������� (��. ���������) ����������� ������. ���� ��������� �� �������, �� ��������� ������ ���� �������������� ����������. ����� ������� �� ����� ����������������. | |
hash [ -r ] [ <�������> ... ] | ��� ������ �� ��������� ������ ������������ � ������������ ���� ������. ����� -r ������� ��� ����������� ������. ���� �� ������ �� ���� ��������, �� ��������� ���������� � ����������� ��������: hits - ���������� ��������� shell'� � ������ �������; cost - ����� ������ ��� ����������� ������� � ������ ������; command - ������ ��� �������. � ��������� ��������� ���������� �������������� ����������� ������, ��� ���������� ������� * � ���� hits. | |
pwd | ������� ��� ������� ����������. | |
read [ <����������> ... ] | �������� �� ������������ ����� ���� ������; ������ �� ����� ������������� ������ ����������, ������ - ������ � �.�., ������ ��� ���������� ����� ������������� ��������� ����������. | |
readonly [ <����������> ... ] | ����������� ��������� �������� ��������� ����������. ���� �������� �� ������ , �� ��������� ���������� ��� ���� ���������� ���� readonly. | |
return [ n ] | ����� �� ������� � ����� ���������� n. ���� n �������, �� ����� ���������� ����� ��� ���������� ��������� ����������� �������. | |
set [ --aefkntuvx [ <���> ... ] ] | ������� ������������� ��������� ������: | |
-a | �������� ����������, ������� ���� �������� ��� �������, ��� ���������� ��������� (��. ���������) | |
-e | ���� ��� ���������� ������� ���������, �� ���������� ��������� ���������� shell'� | |
-f | ��������� ��������� ���� ������ | |
-k | ��� ���������� � ������ ���������� � ��������� �������, � �� ������ ��, ��� ������������ ����� ������� (��. ���������) | |
-n | ������ �������, �� �� ��������� �� | |
-t | ���������� shell'� ����� ����� � ���������� ����� ������� | |
-u | ��� ����������� ������������� ��������������� ���������� ��� ������ | |
-v | ������� �������� ������ ����� ����� �� ����� | |
-x | ������� ������� � �� ��������� ����� �� ����������� | |
-- | �� �������� �����, ������� ��� ������������ ����������� ���������� ����� ��������. | |
��� �������� + ������ - ������ �� ������ ������������� ��������������� �����. ����� ������� ������ ���� �������� ���������� $-. <���> - ��� ��������, ������� ����� ��������� ����������� ���������� $1, $2 � �.�. ���� ��� ��������� �������, ��������� �������� ���� ����������. | ||
shift [ n ] | ����������� ����������, ������� � $(n+1), ����������������� � $1 � �.�. �� ��������� n=1. | |
test | ��������� �������� ��������� (��. �������������� ��������. Test ) | |
trap [ <���> ] [ n ] ... | ������� <���> ����� ���������, ����� shell ������� ������ n (��. �������). (���� ��������, ��� <���> ����������� ��� ��������� ���������� � ��� ��������� �������). ������� ����������� �� ������� ������� ��������. ����� ������� ���������� ������, ������������ ������ ���������, �� ��������������. ������� ���������� �� ������� 11 (segmentation violation) �������� � ������. ���� <���> ������, �� ��� ���������� ��������������� � �� ��������� ��������. ���� <���> ���� ������ ������, �� ���� ������ ������������ shell'�� � ����������� �� �����������. ���� n=0, �� <���> ����������� ��� ������ �� shell'�. Trap ��� ���������� ������� ������ ������, ��������� � ������ ��������. | |
type [ <���> ... ] | ��� ������� ����� ����������, ��� ��� ����� ������������������ ��� ������������� � �������� ����� �������: ��� ���������� ������� shell'�, ��� ��� ����� ��� �� ������ ����� ��� ������. | |
ulimit [ -f ] [ n ] | ������������� ������ ����� � n ������; -f - ������������� ������ �����, ������� ����� ���� ������� ���������-�������� (������ ����� ����� �����). ��� ���������� - ������� ������� ������. | |
umask [ nnn ] | ���������������� ����� �������� ������ ���������� �� nnn. ���� nnn �������, �� ��������� ������� �������� �����. ������: ����� ������� umask 755 ����� ����������� �����, ������� �������� ������ ������, ������ � ���������, � ��� ��������� - ������ ������ � ���������. | |
unset [ <���> ... ] | ��� ������� ����� ������� ��������������� ���������� ��� �������. ���������� PATH, PS1, PS2 � IFS �� ����� ���� �������. | |
wait [ n ] | ���� ���������� ���������� �������� � ������� ��� ��� ����������. ���� n �� �������, �� ��������� ���������� ���� �������� ���������-�������� � ������������ ��� ���������� 0. |
����� | ���������� | ������