98
А
В
С
D
Е
F
G
Н
I
J
К
shift
—►
$1
$2 $3 $4 $5 $6 $7 $8 $9
$1 $2 $3 $4 $5 $6 $7 $8 $9
$1, ..., $9 — бұл айнымалылардың көмегімен тапсырманы
шақырған командалық жолақта параметрлерге мән беру орындалады.
Айнымалы $1 бірінші параметрге сәйкес келеді, айнымалы $9 —
тоғызыншы.
Тоғызыншыдан кейін егер параметрлерге қолжетімділікке
қажеттілік туындаса, параметрлерді тізім бойынша тоғыз параметр
бойынша «терезені» оң жаққа жылжытатын shift командасы
қолданылады (сурет-5.1).
s
hift
командасын орындағаннан кейін, екінші айнымалы
$1айнымалы арқылы қолжетімді болады, ал оныншы айнымалы—$9
командасы арқылы қолжетімді болады.
s
hift командасын орындау саны
шексіз. Дегенмен командалық жолақтың соңғы параметрі айнымалы
мәніне $1 ауыстырып қойған кезде алынады, ал $2, ..., $9
айнымалыларының мәндерін алмастырып қойған кезде тек бос
жолақтар алынатын болады. Параметрлерді кері қайтарып жылжыту
қарастырылмаған.
Көп жағдайда тапсырманы айнымалы атауынан және белгіленген
бөліктен тұратын жолаққа жазу қажеттілігі туындайды, мысалы $ABC
түрдегі жолақ, бұл жерде $А — айнымалы, ал BC —белгеленген
мәтіндік жолақ. Осындай жазба түрінде BASH айнымалы атауының
соңы мен мәтіндік жолақтың басын ажырата алмайды, өйткені А
айнымалысы және ВС жолағы немесе АВ айнымалысы және С жолағы
екені немесе тіпті АВС айнымалысы екені белгісіз.
Сурет-5.1. Параметрлер
терезесінің жылжуы
Дәл осы мәселеге байланысты айнымалы жүйелерінің $1, ..., $9
көмегімен 9 командалық жолақтан көп параметрлерге жүгіну мүмкін
емес; $19 жазбасынан командалық жолақтың 19-параметрі сұратыла ма
немесе артында «9» мәтіндік жолақ тұрған бірінші параметр қажет
болды ма, ол жағы белгісіз.
Осы мәселенің шешімін табу үшін BASH (2.0 және одан жоғары)
жаңа нұсқаларында айнымалылар атауын ерекшелеу таңбалары
қосылған —фигуралы жақша. Айнымалыны шақыру үшін синтаксис
${айнымалы аты} қолданылады.
Атауын ерекшелеу таңбасының көмегімен 9 көп параметрлерге
қолжетімділік мүмкіндігі бар: ол үшін айнымалы атауының орнына
параметр саны көрсетіледі (${n} түрінде, бұл жерде n — кез-келген
толық сан). Сондай-ақ ${n} көмегімен параметрлерге қолжетімділік
|