Daˆ´u nha˘´c cu’a heˆ

Một phần của tài liệu Linux cho người mới dùng (Trang 40 - 42)

3 Bash

3.6.2Daˆ´u nha˘´c cu’a heˆ

˙’ d¯aˆ`u tiên trong giá tri˙ cu’a bieˆ´n soˆ´ IFS. Neˆ´u giá tri

˙cu’a IFS troˆ´ ng, hoa˘

˙c không d¯u’o

˙’c xác d¯i˙nh giá tri

˙, thì tham bieˆ´n phân cách nhau bo’’i các khoa’ng tra˘´ng. @ Thay theˆ´ bo’’i tham bieˆ´n vi

˙trí, ba˘´t d¯aˆ`u tu`’tham bieˆ´n thu´’nhaˆ´t. Neˆ´u thay theˆ´ thu

˙’c hieˆ˙n trong ngoa˘˙c kép, thì moˆ˜i tham bieˆ´n se˜ d¯u’o

˙’c thay theˆ´ bo’’i moˆ ˙t tu`’ riêng bieˆ

˙t. Tu´’c là, "$@" tu’o’ng d¯u’o’ng vo´’i "$1" "$2" . . . Neˆ´u không có tham bieˆ´n vi

˙trí, thì giá tri˙se˜ không d¯u’o

˙’c thieˆ´ t laˆ

˙p (tham bieˆ´n se˜ bi ˙x # Thay theˆ´ bo’’i giá tri

˙thaˆ

˙p phân cu’a các tham bieˆ´n vi ˙trí. ? Thay theˆ´ bo’’i tra

˙ng thái thoát ra cu’a câu leˆ

˙nh cuoˆ´ i cùng trong d¯u’o`’ng oˆ´ng, mà d¯u’o

˙’c thu˙’c hieˆ˙n trong cheˆ´ d¯oˆ

˙ neˆ`n tru’o´’c. - (ga

˙ch ngang) Thay theˆ´ bo’’i giá tri

˙các co`’, flag, d¯u’o

˙’c d¯a˘˙t bo’’i leˆ ˙nh noˆ

˙i trúsethay trong khi cha

˙y heˆ ˙ vo’.

$ Thay theˆ´ bo’’i soˆ´ cu’a tieˆ´n trình (PID - process identificator) Thay theˆ´ bo’’i soˆ´ cu’a tieˆ´n trình (PID) cuoˆ´i cùng trong soˆ´ các câu leˆ

˙nh thu˙’c hieˆ

˙n trong neˆ`n sau. 0 Thay theˆ´ bo’’i tên heˆ

˙ vo’ hay tên cu’a script d¯ang cha

˙y. Neˆ´u bash cha ˙y moˆ

˙t taˆ ˙p tin leˆ

˙nh nào d¯ó, thì $0 có giá tri

˙ba˘`ng tên cu’a taˆ

˙p tin này. Trong tru’o`’ng ho

˙’p ngu’o˙’c la˙i giá tri˙này ba˘`ng d¯u’o`’ng daˆ˜n d¯aˆ`u d¯u’ d¯eˆ´n heˆ ˙ vo’ (ví du

˙,/bin/bash _ (ga

˙ch du’o´’i) Thay theˆ´ bo’’i tham soˆ´ cuoˆ´i cùng cu’a câu leˆ

˙nh tru’o´’c trong soˆ´ các câu leˆ ˙nh d¯ã d¯u’o

˙’c thu˙’c hieˆ˙n (neˆ´u d¯ó la

˙i là moˆ

˙t tham bieˆ´n hay bieˆ´n soˆ´ , thì se˜ su’’ du

˙ng giá tri˙cu’a n

Trong d¯ó, caˆ`n thay name bo’’i tên bieˆ´n (nhu’ vaˆ

˙y, trong tru’o`’ng ho

˙’p này, ba˙n la˙i caˆ`n pha’i bieˆ´t tên cu’a bieˆ´n muoˆ´ n xem). Trong soˆ´ các bieˆ´n, mà ba

˙n se˜ thaˆ´y trong keˆ´t qua’ cu’a leˆ

˙nhset, có nhu˜’ng bieˆ´n raˆ´t thú vi

˙. Xin hãy chú ý d¯eˆ´n, ví du

˙, bieˆ´n RANDOM. Neˆ´u thu’’cha

˙y vài laˆ`n liên tieˆ´p câu leˆ

˙nh sau:

kênh giao tác

maikhai@fpt:/sw$ echo $RANDOM

thì moˆ˜i laˆ`n ba

˙n se˜ nhaˆ ˙n d¯u’o

˙’c moˆ˙t giá tri˙mo´’i. Nguyên nhân là vì bieˆ´n này tra’ la ˙i moˆ

˙t giá tri

˙ngaˆ˜u nhiên4trong khoa’ng 0 - 32 768.

3.6.2 Daˆ´ u nha˘´c cu’a heˆ˙ vo’ ˙ vo’

Moˆ

˙t trong các bieˆ´n raˆ´t quan tro

˙ng có tên PS1. Bieˆ´n này cho bieˆ´t da

˙ng cu’a daˆ´u nha˘´c, màbash

d¯u’a ra trong khi cho`’ ngu’o`’i dùng nhaˆ

˙p câu leˆ

˙nh tieˆ´p theo. Theo ma˘ ˙c d¯i

˙nh thì bieˆ´n này d¯u’o ˙’c gán giá tri

˙"\s-\v\$ , tuy nhiên trên các ba’n phân phoˆ´ i khác nhau thu’o`’ng có các script

3.6 Tham bieˆ´ n và các bieˆ´n soˆ´. Môi tru’o`’ng cu’a heˆ

˙vo’ 37

kho’’i d¯oˆ

˙ng (hay script d¯a˘ng nhaˆ

˙p) xác d¯i

˙nh la˙i bieˆ´n này. Nói chung thì trongbashcó taˆ´t ca’ boˆ´ n daˆ´u nha˘´c, d¯u’o

˙’c su’’ du˙ng trong các tru’o`’ng ho

˙’p khác nhau. Bieˆ´ n PS1 d¯u’a ra da

˙ng cu’a daˆ´u nha˘´c khi heˆ

˙ vo’ cho`’ nhaˆ ˙p leˆ

˙nh. Daˆ´u nha˘´c thu´’ hai, xác d¯i

˙nh bo’’i bieˆ´n PS2, xuaˆ´t hieˆ

˙n khi heˆ ˙ vo’ cho`’ ngu’o`’i dùng nhaˆ

˙p thêm moˆ

˙t vài du˜’ lieˆ

˙u caˆ`n thieˆ´t nào d¯ó d¯eˆ’ có theˆ’ tieˆ´p tu

˙c cha˙y câu leˆ ˙nh (chu’o’ng trình) d¯ã go

˙i. Theo ma˘˙c d¯i

˙nh bieˆ´n PS2 có giá tri

˙">". Raˆ´t có theˆ’ ba

˙n d¯ã nhìn thaˆ´y daˆ´u nha˘´c này, khi cha

˙y leˆ

˙nhcatd¯eˆ’ d¯u’a du˜’ lieˆ

˙u vào tu`’ bàn phím vào taˆ

˙p tin. Moˆ

˙t ví du˙ khác - leˆ

˙nhftp, sau khi cha˙y leˆ

˙nh này daˆ´u nha˘´c se˜ có da

˙ng nhu’ d¯ã nói. Daˆ´u nha˘´c, xác d¯i ˙nh bo’’i bieˆ´n PS3, su’’ du

˙ng trong leˆ

˙nhselect. Daˆ´u nha˘´c, xác d¯i

˙nh bo’’i bieˆ´n PS4, d¯u’o

˙’c d¯u’a ra tru’o´’c moˆ˜i câu leˆ

˙nh, trong lúcbashtheo dõi quá trình thu˙’c hieˆ˙n. Giá tri˙theo ma˘˙c d¯i

˙nh - "+". Neˆ´u có mong muoˆ´ n, ba

˙n có theˆ’ thay d¯oˆ’i các bieˆ´n PS1 và PS2. Khi này có theˆ’ su’’ du

˙ng baˆ´t ky` ký tu

˙’ nào nhaˆ˙p tu`’ bàn phím, cu˜ng nhu’ moˆ

˙t vài ký tu˙’ chuyên dùng d¯eˆ’ xác d¯i˙nh da˙ng daˆ´u nha˘´c nhu’trong ba’ng3.3(chı’ d¯u’a ra moˆ

˙t vài trong soˆ´ chúng làm ví du

˙, danh sách d¯aˆ`y d¯u’ xem trong trang man cu’abash- gõ leˆ

˙nh "man bash"). Ba’ng 3.3: Ký tu

˙’ xác d¯i˙nh da˙ng daˆ´u nha˘´c Cu

˙m ký tu˙’ Giá tri˙(keˆ´t qua’ thu d¯u’o ˙’c)

\a Tín hieˆ

˙u âm thanh (mã ASCII 07)

\d Tho`’i gian o’’ da

˙ng "Thu´’, tháng, ngày", ví du

˙, Sun, Dec, 26.

\h Tên máy (hostname) d¯eˆ´n daˆ´u chaˆ´m d¯aˆ`u tiên.

\H Tên máy d¯aˆ`y d¯u’, ví du

˙ teppi.phanthinh.com

\t Tho`’i gian hieˆ

˙n tho`’i o’’ da

˙ng 24 gio`’: HH:MM:SS (gio`’:phút:giây)

\T Tho`’i gian hieˆ

˙n tho`’i o’’ da

˙ng 12 gio`’: HH:MM:SS

\@ Tho`’i gian hieˆ

˙n tho`’i o’’ da

˙ng 12 gio`’ am/pm (sáng/chieˆ`u)

\u Tên ngu’o`’i dùng d¯ã cha ˙y heˆ

˙ vo’, ví du˙ teppi

\w Tên d¯aˆ`y d¯u’ cu’a thu’ mu

˙c làm vieˆ ˙c hieˆ

˙n tho`’i (ba˘´t d¯aˆ`u tu`’ goˆ´c), ví du ˙ /home/teppi82/project/l4u

\W Thu’ mu ˙c hieˆ

˙n tho`’i (không có d¯u’o`’ng daˆ˜n)

\$ Ký tu

˙’ #, neˆ´ u heˆ

˙vo’ d¯u’o

˙’c cha˙y bo’’i ngu’o`’i dùng root, và ký tu

˙’ $, neˆ´ u heˆ ˙ vo’ d¯u’o

˙’c cha˙y bo’’i ngu’o`’i dùng thu’o`’ng.

\nnn Ký tu ˙’ có mã heˆ˙ tám nnn \n Dòng mo´’i (chuyeˆ’n dòng) \s Tên heˆ ˙vo’ \# Soˆ´ hieˆ

˙n tho`’i cu’a câu leˆ ˙nh

\\ Daˆ´u ga

˙ch ngu’o

˙’c (backslash)

\[ Sau ký tu

˙’ này taˆ´ t ca’ các ký tu

˙’ se˜ không d¯u’o˙’c in ra.

\] Keˆ´t thúc chuoˆ˜i các ký tu

˙’ không d¯u’o˙’c in ra.

\! Soˆ´ thu´’ tu

˙’ cu’a leˆ˙nh hieˆ

˙n tho`’i trong li

˙ch su’’ các câu leˆ

˙nh d¯ã dùng. Soˆ´ cu’a leˆ

˙nh (soˆ´ thu´’tu

˙’ cu’a leˆ˙nh d¯ang thu

˙’c hieˆ˙n trong buoˆ’i làm vieˆ ˙c hieˆ

˙n tho`’i) có theˆ’ khác vo´’i soˆ´ cu’a chính nó trong danh sách "li

˙ch su’’ các câu leˆ

˙nh", bo’’i vì danh sách còn chu´’a ca’ nhu˜’ng câu leˆ

˙nh d¯ã d¯u’o

˙’c ghi la˙i trong taˆ

˙p tin li˙ch su’’. Sau khi giá tri

˙cu’a bieˆ´n d¯u’o

˙’c heˆ˙vo’ d¯o ˙c xong, se˜ xa’y ra su

˙’ thay theˆ´ theo các quy luaˆ

˙t mo’’ roˆ

˙ng trong ba’ng trên, d¯oˆ`ng tho`’i còn xa’y ra su

˙’ thay theˆ´ trong tên các câu leˆ

˙nh, trong các bieˆ’u thu´’c soˆ´ ho

˙c, và su˙’ chia tu`’ (word splitting). Chúng ta se˜ nói d¯eˆ´n nhu˜’ng su

˙’thay theˆ´ này o’’du’o´’i.Ví du

˙, sau khi thu˙’c hieˆ˙n leˆ

˙nh (vì trong dòng va˘n ba’n có khoa’ng troˆ´ ng, nên nhaˆ´t thieˆ´t pha’i có daˆ´u ngoa˘

˙c):

kênh giao tác

thì trong daˆ´u nha˘´c se˜ có daˆ´u mo’’ ngoa˘

˙c vuông, tên ngu’o`’i dùng, ký hieˆ

˙u , tên máy, khoa’ng tra˘´ng, tên cu’a thu’ mu

˙c hieˆ

˙n tho`’i (không có d¯u’o`’ng daˆ˜n), daˆ´u d¯óng ngoa˘

˙c vuông, và ký hieˆ ˙u $ (neˆ´u trên heˆ

˙ vo’ d¯ang làm vieˆ

˙c ngu’o`’i dùng bình thu’o`’ng) hay #(neˆ´u heˆ

˙ vo’ cha˙y du’o´’i ngu’o`’i dùng root).

Một phần của tài liệu Linux cho người mới dùng (Trang 40 - 42)