Linux buýrugynyň çykyşyny üýtgeýjä nädip bellemeli


Buýruk işledeniňizde, haýsydyr bir çykyş çykarýar: ýa-da bir programmanyň netijesi, programmanyň ýerine ýetiriş jikme-jiklikleriniň ýagdaýy/ýalňyş habarlaryny öndürmek ýa-da status/ýalňyş habarlary öndürmek göz öňünde tutulýar. Käwagt, buýrugyň çykyşyny soňraky amalda ulanmak üçin üýtgeýjide saklamak isläp bilersiňiz.

Bu ýazgyda, gabyk skriptiniň maksady üçin ýörite peýdaly bir üýtgeýjä gabyk buýrugynyň çykyşyny bellemegiň dürli usullaryny gözden geçireris.

Buýrugyň çykyşyny üýtgeýjide saklamak üçin, gabyk buýrugyny çalyşmak aýratynlygyny aşakdaky görnüşlerde ulanyp bilersiňiz:

variable_name=$(command)
variable_name=$(command [option ...] arg1 arg2 ...)
OR
variable_name='command'
variable_name='command [option ...] arg1 arg2 ...'

Aşakda buýrugy çalyşmagyň birnäçe mysallary getirilýär.

Bu ilkinji mysalda, üýtgeýän CURRENT_USERS ulanyjysynda kim (ulgamda kimiň girendigini görkezýär) buýrugynyň bahasyny saklarys:

$ CURRENT_USERS=$(who)

Soňra üýtgeýjini echo buýrugyny ulanyp görkezilen sözlemde ulanyp bileris:

$ echo -e "The following users are logged on the system:\n\n $CURRENT_USERS"

Aboveokardaky buýrukda: baýdak -e ulanylýan islendik gaçmak yzygiderliligini (täze setir üçin \n ) düşündirmegi aňladýar. Wagt we ýadyňy ýitirmezlik üçin, echo buýrugynyň içinde buýrugy çalyşmagy ýerine ýetiriň:

$ echo -e "The following users are logged on the system:\n\n $(who)"

Ondan soň, ikinji görnüşi ulanyp düşünjäni görkezmek; häzirki iş bukjasyndaky faýllaryň umumy sanyny FILES atly üýtgeýjide saklap bileris we soňraky görnüşde gaýtalap bileris:

$ FILES=`sudo find . -type f -print | wc -l`
$ echo "There are $FILES in the current working directory."

Häzirlikçe, bu makalada gabyk buýrugynyň çykyşyny üýtgeýjä bellemegiň usullaryny düşündirdik. Aşakdaky seslenme bölümi arkaly pikirleriňizi bu ýazga goşup bilersiňiz.