proc1
A) bash [-x] proc1
chmod u+x, g+x proc1
B) [./]proc1
PATH -> .bash_profile
PATH = $PATH:.
. proc1
(A) (B) export PATH
Променливи
1. На потребителя
1.1. С =
a=низ
b=”This string contains intervals”
1.2 С `(обратен апостроф)
A=`команден_ред`
A=`ls`
1.3 С оператор read
read B [C]
низ1 [низ2]...
1.4 С echo
echo $a $b
--------------------------
var=HELLO
echo $var
vi procA
echo $var
var=NO_HELLO
echo $var
bash -x procA
echo $var
----------------------------
export var
bash -x procA
echo $var
Позиционни параметри на командният интерпретатор
1.
$0,$1,$2,......
vi procB
finger $1
ls -l $2
ps $3 $1
2.1 bash -x procB s44123 $HOME -u
$0 $1 $2 $3
+ finger s44123
+ls -l /home/.../s44123
….......
+ps -u s44123
2.2 set низ1 низ2
$1 $2
set низ
echo $0
echo $* - всички ще покаже
echo $@ - като горното
2.3 set `date`
$1$2$3$4
2.4 shift - измества стойностите на параметрите от по-голям към по-малък номер без да пипа нулевия (ако $1 е зададен, то стойността му отпада)
Служебни променливи на командния интерпретатор
# - брой на позиционните параметри
set `ls /home/students`
echo $#
echo $21 няма да се получи
echo ${21} ще се получи
? - код на завършване на последния завършил процес
а) последна команда
б) exit 0
echo hello
echo $? - ще изведе 0 (успешно завършил)
xyz...
echo $? - ще изведе 127 (неуспешно завършил)
true; echo $?
0
false; echo &?
1
: -> код 0
$ - идентификатор (PID) на текущия bash
echo $$
! - идентификатор (PID) на последния процес стартиран в background режим
Зад. Да се състави командна процедура, която получава като позиционни параметри 2 имена на файлове и им разменя имената.
cat aaaa
aaaa
aaaa
cat bbbbb
bbbbbbbbb
bbbbbb
vi proc
mv …. $1.....
….
Сподели с приятели: |