Khai trieˆ’n daˆ´u ngoa˘

Một phần của tài liệu Tài liệu Linux cho người dùng doc (Trang 43 - 44)

3 Bash

3.7.1Khai trieˆ’n daˆ´u ngoa˘

kênh giao tác

[user]$ export name=value

Trong tru’o`’ng ho

˙’p này, taˆ´ t ca’ các chu’o’ng trình cha

˙y tu`’ heˆ

˙ vo’ (keˆ’ ca’ ba’n sao thu´’ hai cu’a chính heˆ

˙ vo’) se˜ có quyeˆ`n truy caˆ

˙p to´’i các bieˆ´n d¯u’o

˙’c gán nhu’ vaˆ˙y, tu´’c là su’’ du

˙ng giá tri˙cu’a chúng qua tên.

3.7 Khai trieˆ’n bieˆ’u thu´’c

Hay heˆ

˙ vo’ d¯o

˙c các câu leˆ˙nh nhu’ the´ nào?ˆ Khi heˆ

˙ vo’ nhaˆ ˙n d¯u’o

˙’c moˆ˙t dòng leˆ

˙nh này d¯ó caˆ`n thu

˙’c hieˆ˙n, nó (heˆ

˙ vo’) tru’o´’c khi cha

˙y câu leˆ

˙nh thu˙’c hieˆ˙n vieˆ

˙c "phân tích ngu˜’ pháp" dòng leˆ

˙nh này (gioˆ´ ng trong ngôn ngu˜’, phân tích chu’ ngu˜’, vi

˙ngu˜’). Moˆ

˙t trong nhu˜’ng bu’o´’c cu’a su

˙’ phân tích này là phép mo’’ hay khai trieˆ’n bieˆ’u thu´’c (expansion). Trongbashcó ba’y loa

˙i khai trieˆ’n bieˆ’u thu´’c: • Khai trieˆ’n daˆ´u ngoa˘

˙c (brace expansion); • Thay theˆ´ daˆ´u ngã (tilde expansion); • Phép theˆ´ các tham bieˆ´n và bieˆ´n soˆ´ ; • Phép theˆ´ các câu leˆ

˙nh; • Phép theˆ´ soˆ´ ho

˙c (thu˙’c hieˆ˙n tu`’ trái sang pha’i); • Phép chia tu`’ (word splitting);

• Khai trieˆ’n các maˆ˜u tên taˆ (adsbygoogle = window.adsbygoogle || []).push({});

˙p tin và thu’ mu

˙c (pathname expansion). Các thao tác này d¯u’o

˙’c thu˙’c hieˆ˙n theo d¯úng thu´’ tu

˙’ lieˆ˙t kê trên. Chúng ta se˜ xem xét chúng theo tu´’ tu

˙’ này.

3.7.1 Khai trieˆ’n daˆ´ u ngoa˘˙c ˙c

Khai trieˆ’n daˆ´u ngoa˘

˙c toˆ´ t nhaˆ´t minh ho

˙a trên ví du˙. Gia’ thieˆ´t, chúng ta caˆ`n ta

˙o thu’ mu ˙c con trong moˆ

˙t thu’mu

˙c nào d¯ó, hoa˘

˙c thay d¯oˆ’i ngu’o`’i dùng so’’ hu˜’u cu’a vài taˆ

˙p tin cùng moˆ˙t lúc. Có

theˆ’ thu

˙’c hieˆ˙n d¯ieˆ`u này nho`’ các câu leˆ

˙nh sau:

kênh giao tác

[user]$ mkdir /usr/src/unikey/{old,new,dist,bugs}

[root]# chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}

Trong tru’o`’ng ho

˙’p d¯aˆ`u, trong thu’ mu˙c/usr/src/unikey/se˜ ta

˙o ra các thu’ mu ˙c con

old,new,dist, vàbugs. Trong tru’o`’ng ho

˙’p thu´’hai, ngu’o`’i dùng so’’ hu˜’u cu’a các taˆ

˙p tin sau se˜ thay d¯oˆ’i (thành root):

• /usr/ucb/ex • /usr/lib/ex?.?

• /usr/ucb/edit • /usr/lib/ex?.? • /usr/ucb/ex • /usr/lib/how_ex • /usr/ucb/edit • /usr/lib/how_ex

Tu´’c là vo´’i moˆ˜i ca˘

˙p daˆ´u ngoa˘ (adsbygoogle = window.adsbygoogle || []).push({});

˙c se˜ ta

˙o ra vài dòng riêng re˜ (soˆ´ nhu˜’ng dòng này ba˘`ng soˆ´ tu`’ na˘`ng trong daˆ´u ngoa˘

˙c) ba˘`ng cách ghi thêm vào tru’o´’c moˆ˜i tu`’trong ngoa˘

˙c nhu˜’ng gì d¯u´’ng tru’o´’c daˆ´u ngoa˘

˙c, và ghi thêm vào sau moˆ˜i tu`’ này nhu˜’ng gì d¯u´’ng sau daˆ´u ngoa˘ ˙c. Moˆ

˙t ví du˙ khác: dònga{d,c,b}ekhi khai trieˆ’n se˜ thu d¯u’o

˙’c ba tu`’ "ade ace abe". Khai trieˆ’n daˆ´u ngoa˘ ˙c d¯u’o

˙’c thu˙’c hieˆ˙n tru’o´’c các da

˙ng khai trieˆ’n khác trong dòng leˆ

˙nh, ho’n nu˜’a taˆ´t ca’ các ký tu ˙’ d¯a˘˙c bieˆ

˙t có trong dòng leˆ

˙nh, keˆ’ ca’ nhu˜’ng ký tu

˙’ na˘`m trong daˆ´ u ngoa˘

˙c, se˜ d¯u’o

˙’c giu˜’ không thay d¯oˆ’i (chúng se˜ d¯u’o

˙’c biên di˙ch o’’ các bu’o´’c phía sau).

Một phần của tài liệu Tài liệu Linux cho người dùng doc (Trang 43 - 44)