မျှော်လင့်မထားသော Bash variable ခုနစ်ခု

မှတ်စုများအကြောင်းကို ဆက်တိုက်ရေးပါသည်။ လူသိနည်းပါတယ်။ လုပ်ဆောင်ချက်များ bash၊ မင်းမသိနိုင်တဲ့ variable ခုနစ်ခုကို ငါပြမယ်။

1) PROMPT_COMMAND

အမျိုးမျိုးသောအသုံးဝင်သောအချက်အလက်များကိုပြသရန် prompt ကိုမည်ကဲ့သို့ကိုင်တွယ်ရမည်ကိုသင်သတိထားပြီးဖြစ်နိုင်သော်လည်း prompt ကိုပြသတိုင်း shell command ကိုသင် run နိုင်ကြောင်းလူတိုင်းမသိပါ။

တကယ်တော့၊ ရှုပ်ထွေးတဲ့ prompt manipulator တော်တော်များများဟာ prompt မှာပြသထားတဲ့ အချက်အလက်တွေကို စုဆောင်းဖို့အတွက် command တွေကို execute လုပ်ဖို့အတွက် ဒီ variable ကိုသုံးပါတယ်။

၎င်းကို အခွံအသစ်တစ်ခုတွင် စမ်းသုံးကြည့်ပြီး စက်ရှင်တွင် ဘာဖြစ်မည်ကိုကြည့်ပါ-

$ PROMPT_COMMAND='echo -n "writing the prompt at " && date'

2) HISTTIMEFORMAT

ပြေးရင် history console တွင်၊ သင့်အကောင့်အောက်တွင် ယခင်က လုပ်ဆောင်ခဲ့သော command များစာရင်းကို သင်ရရှိမည်ဖြစ်သည်။

$ HISTTIMEFORMAT='I ran this at: %d/%m/%y %T '

ဤ variable ကို သတ်မှတ်ပြီးသည်နှင့်၊ အသစ်ဝင်ရောက်မှုများသည် အချိန်ကို command နှင့်အတူ မှတ်တမ်းတင်ထားသောကြောင့် output သည် ဤကဲ့သို့ဖြစ်နေလိမ့်မည်-

1871 ငါ ဒါကို ပြေးခဲ့တယ် : 01/05/19 13:38:07 ကြောင် /etc/resolv.conf 1872 ငါ ဒါကို ပြေးခဲ့တယ် : 01/05/19 13:38:19 curl bbc.co.uk 1873 ငါ ဒီကို ပြေးခဲ့တယ် : 01/05/19 13:38:41 sudo vi /etc/resolv.conf 1874 ငါ ဒါကို ပြေးခဲ့တယ်: 01/05/19 13:39:18 curl -vvv bbc.co.uk 1876 ငါ ဒါကို ပြေးခဲ့တယ်: 01 /05/19 13:39:25 sudo su -

ဖော်မတ်ချခြင်းသည် စာလုံးများမှ ကိုက်ညီသည်။ man date.

3) CDPATH

command line တွင် အချိန်ကုန်သက်သာစေရန်၊ သင်သည် command များကိုထုတ်သည်နှင့်အမျှ directory များကို လွယ်ကူစွာပြောင်းရန် ဤကိန်းရှင်ကို အသုံးပြုနိုင်သည်။

ကဲ့သို့ PATH, ပြောင်းလဲနိုင်သည်။ CDPATH အူမကြီး-ခြားထားသော လမ်းကြောင်းများစာရင်းဖြစ်သည်။ သင် command ကို run သောအခါ cd ဆွေမျိုးလမ်းကြောင်း (ဆိုလိုသည်မှာ ဦးဆောင်မျဉ်းစောင်းမရှိ) ဖြင့် ပုံမှန်အားဖြင့် Shell သည် သင့်စက်တွင်းဖိုင်တွဲတွင် လိုက်ဖက်သောအမည်များကို ရှာဖွေသည်။ CDPATH သင်သွားလိုသော လမ်းညွှန်အတွက် သင်ပေးထားသော လမ်းကြောင်းများတွင် ရှာဖွေမည်ဖြစ်သည်။

တပ်ဆင်လျှင် CDPATH အောက်ပါအတိုင်း:

$ CDPATH=/:/lib

ပြီးမှ ရိုက်ထည့်ပါ

$ cd /home
$ cd tmp

ထို့နောက်သင်အမြဲတမ်း၌အဆုံးသတ်လိမ့်မည်။ /tmp သင်ဘယ်မှာနေပါစေ။

သို့သော်လည်း စာရင်းတွင် ဒေသန္တရစာရင်းကို မသတ်မှတ်ပါက သတိထားပါ။.) ဖိုဒါသည် အခြား ဖိုဒါတစ်ခုကို ဖန်တီးနိုင်မည် မဟုတ်ပါ။ tmp ပြီးလျှင် ပုံမှန်အတိုင်း သွားပါ။

$ cd /home
$ mkdir tmp
$ cd tmp
$ pwd
/tmp

သည်းခံပါ

၎င်းသည် စက်တွင်းဖိုင်တွဲတွင် ပိုမိုရင်းနှီးသောကိန်းရှင်တွင် မပါဝင်ကြောင်း သိရှိလိုက်သောအခါ ၎င်းသည် ရှုပ်ထွေးမှုများနှင့် ဆင်တူသည်။ PATH... သို့သော် ဒေါင်းလုဒ်လုပ်ထားသောကုဒ်အချို့မှ အတုအယောင် command တစ်ခုကို လှည့်စားခြင်းခံရနိုင်သောကြောင့် သင်၏ PATH variable တွင် ၎င်းကို လုပ်ဆောင်ရမည်ဖြစ်သည်။

မိုင်းကို စမှတ်ဖြင့် သတ်မှတ်သည်-

CDPATH=.:/space:/etc:/var/lib:/usr/share:/opt

4) SHLVL

စာရိုက်ဖူးလား သိချင်လား။ exit သင့်လက်ရှိ bash shell မှ သင့်အား အခြား "parent" shell သို့ ခေါ်ဆောင်သွားပါမည်လား၊ သို့မဟုတ် console window ကို လုံးဝပိတ်လိုက်မည်လား။

ဤကိန်းရှင်သည် bash shell တွင် သင်မည်မျှ နက်နဲစွာ အသိုက်အမြုံ ရှိနေသည်ကို ခြေရာခံသည်။ terminal အသစ်တစ်ခုကို ဖန်တီးပါက၊ ၎င်းကို 1 ဟု သတ်မှတ်ထားသည်-

$ echo $SHLVL
1

ထို့နောက်၊ သင်သည် အခြားသော shell လုပ်ငန်းစဉ်ကို စတင်ပါက၊ အရေအတွက် တိုးလာသည်-

$ bash
$ echo $SHLVL
2

၎င်းသည် ထွက်ရန် သို့မဟုတ် ထွက်ရန် မသေချာသော သို့မဟုတ် သင်အသိုက်အမြုံဖြစ်နေသည့်နေရာကို ခြေရာခံရန် သင်မသိနိုင်သော script များတွင် ၎င်းသည် အလွန်အသုံးဝင်ပါသည်။

5) LINENO

ကိန်းရှင်သည် လက်ရှိအခြေအနေအား ပိုင်းခြားစိတ်ဖြာခြင်းနှင့် အမှားရှာပြင်ခြင်းအတွက် အသုံးဝင်သည်။ LINENOယခုအချိန်အထိ session တွင် လုပ်ဆောင်ခဲ့သော command အရေအတွက်ကို အစီရင်ခံသည့်၊

$ bash
$ echo $LINENO
1
$ echo $LINENO
2

Script များကို အမှားရှာသည့်အခါတွင် ၎င်းကို အများဆုံးအသုံးပြုသည်။ ကြိုက်တဲ့လိုင်းတွေ ထည့်ပေးတယ်။ echo DEBUG:$LINENO၊ သင်သည် ဇာတ်ညွှန်းတွင် မည်သည့်နေရာ (သို့မဟုတ) ကို လျင်မြန်စွာ ဆုံးဖြတ်နိုင်သည်။

6) REPLY

ကျွန်ုပ်ကဲ့သို့ပင်၊ သင်သည် များသောအားဖြင့် ဤကဲ့သို့ ကုဒ်ကို ရေးတတ်သည်-

$ read input
echo do something with $input

variable ကို ဖန်တီးရာတွင် လုံးဝ စိတ်ပူစရာ မလိုသည့်အတွက် အံ့အားသင့်စရာ ဖြစ်လာနိုင်သည်-

$ read
echo do something with $REPLY

ဒါက အတူတူပါပဲ။

7) TMOUT

လုံခြုံရေးအကြောင်းပြချက်ကြောင့် ထုတ်လုပ်မှုဆာဗာများတွင် အကြာကြီးနေနေခြင်းကို ရှောင်ရှားရန် သို့မဟုတ် မှားယွင်းသော terminal တွင် အန္တရာယ်ရှိသောအရာတစ်ခုခုကို မတော်တဆလုပ်ဆောင်နေခြင်းကို ရှောင်ရှားရန်၊ ဤကိန်းရှင်ကို သတ်မှတ်ခြင်းသည် အကာအကွယ်တစ်ခုအနေဖြင့် လုပ်ဆောင်သည်။

သတ်မှတ်ထားသော စက္ကန့်ပိုင်းအတွင်း မည်သည့်အရာကိုမျှ မထည့်ပါက၊ shell သည် ထွက်သည်။

ဆိုလိုသည်မှာ၊ ဤသည်အခြားရွေးချယ်စရာတစ်ခုဖြစ်သည်။ sleep 1 && exit:

$ TMOUT=1

source: www.habr.com

မှတ်ချက် Add