БАСХ команда излаз на променљиву

Bash Command Output Variable



Различите врсте басх команди треба покренути са терминала на основу захтева корисника. Када корисник покрене било коју наредбу с терминала, тада приказује излаз ако нема грешке, у супротном приказује поруку о грешци. Понекад је излаз наредбе потребно сачувати у променљивој за будућу употребу. Функција замене команде љуске басх -а може се користити у ту сврху. Како можете да ускладиштите различите врсте команди љуске у променљиву помоћу ове функције приказано је у овом водичу.

променљива= $(команда)
променљива= $(команда [опција…]аргумент1 аргументи2 ...)
променљива= $(/пут/до/команда)

ИЛИ







променљива=``команда``
променљива=``команда [опција…]аргумент1 аргументи2 ...``
променљива=`/пут/до/команда``

*** Напомена: Немојте користити размак пре и после знака једнакости када користите горње команде.



Излаз једне команде на променљиву

Басх команде се могу користити без икаквих опција и аргумената за оне команде где су ови делови опционални. Следећа два примера показују употребу једноставне замене команде.



Пример#1:

басх ` датум` команда се користи за приказ тренутног датума и времена. Следећа скрипта ће сачувати излаз ` датум` команда у $ Тренутни датум променљива коришћењем замене команде.





$Тренутни датум= $(датум)
$Избацио 'Данас је$ цуррент_дате'

Излаз:



Пример#2:

`пвд` команда приказује путању тренутног радног именика. Следећа скрипта складишти излаз `пвд` наредба у променљиву, $ цуррент_дир а вредност ове променљиве се штампа помоћу `ецхо` команда.

$цуррент_дир=``пвд``
$Избацио „Тренутни директоријум је:$ цуррент_дир'

Излаз:

Наредба са опцијом и аргументом

Опција и аргумент су обавезни за неке басх команде. Следећи примери показују како можете сачувати излаз наредбе са опцијом и аргументом у променљиву.

Пример#3:

Басх ` Тоалет команда се користи за бројање укупног броја редова, речи и знакова било које датотеке. Ова команда користи -ц, -в и -л као опцију и име датотеке као аргумент за генерисање излаза. Направите текстуалну датотеку под називом плодови.ткт са следећим подацима за тестирање следеће скрипте.
плодови.ткт

плодови.ткт
Манго
Оранге
Банана
Грожђа
Гуава
Аппле

Покрените следеће команде за бројање и складиштење укупног броја речи у плодови.ткт датотеку у променљиву, $ цоунт_вордс и одштампајте вредност помоћу ` ецхо` команда.

$цоунт_вордс=``Тоалет -инплодови.ткт``
$Избацио „Укупан број речи у плодовима.ткт је$ цоунт_вордс'

Излаз:

Пример#4:

`резати` је још једна басх команда која користи опцију и аргумент за генерисање излаза. Направите текстуалну датотеку под називом веекдаи.ткт са именима седам седмица за покретање следеће скрипте.

веекдаи.ткт

Понедељак
Уторак
Среда
Четвртак
Петак
Субота
Недеља

Направите басх датотеку под називом цмдсуб1.сх са следећим писмом. У овом писму, док лооп се користи за читање садржаја веекдаи.ткт датотеку ред по ред и прочитајте прва три знака сваког реда помоћу ` цут` команда. Након сечења, вредност низа се складишти у променљивој $ дан . Затим, ако се наредба користи за проверу вредности $ дан је ' Сунце ’ или не. Излаз ће се одштампати „ Недеља је празник „Када је услов тачан, у супротном ће одштампати вредност $ дан .

цмдсуб1.сх

#!/бин/басх
назив документа='веекдаи.ткт'
док читатилине;урадити
дан=``Избацио $ линија | исећи 1-3``
ако [ $ дан=='Сунце' ]
онда
Избацио 'Недеља је празник'
елсе
Избацио $ дан
бити
Готово<$ назив датотеке

Покрените скрипту.

$мачкавеекдаи.ткт
$басхцмдсуб1.сх

Излаз:

Коришћење замене команде у петљи

Можете сачувати излаз замене команде у било коју променљиву петљу која је приказана у следећем примеру.

Пример#5:

Направите датотеку под називом цмдсуб2.сх са следећим кодом. Овде, ` лс -д * / `команда се користи за преузимање свих листа директоријума из тренутног директоријума. Фор лооп се овде користи за читање сваког директоријума са излаза и његово складиштење у променљивој $ дирнаме која се касније штампа.

цмдсуб2.сх

#!/бин/басх
за дирнаме у$(лс * /)
урадити
Избацио '$ дирнаме'
Готово

Покрените скрипту.

$басхцмдсуб2.сх

Излаз:

Коришћење угнежђених команди

Како можете користити више команди помоћу пипе (|) приказано је у претходном примеру. Али можете користити угнежђене команде у замени команде где излаз прве команде зависи од излаза друге команде и ради супротно од команде пипе (|).

Уметнута синтакса команде:

где=``команда1 ``команда``

Пример#6:

Две команде, ` Избацио `и` СЗО `се користе у овом примеру као угнежђена команда. Овде, ` СЗО `команда ће се прво извршити и одштампати податке о кориснику тренутно пријављеног корисника. Излаз ` СЗО `команда ће се извршити до` Избацио `команда и излаз` Избацио `чуваће се у променљивој $ вар . Овде је излаз ` Избацио команда `зависи од излаза` СЗО `команда.

$где=``Избацио``СЗО``
$Избацио $ вар

Излаз:

Коришћење командне путање

Ако знате путању наредбе, тада можете покренути наредбу тако што ћете навести путању наредбе када користите замјену наредбе. Следећи пример приказује употребу командне путање.

Пример#7:

`вхоами` команда приказује корисничко име тренутно пријављеног корисника. Ова команда је подразумевано сачувана у / уср/ сам/ фолдер. Покрените следећу скрипту да бисте покренули ` вхоами` наредба помоћу путање и складиштење у променљивој, $ излаз, и одштампајте вредност $ излаз .

$излаз= $(/уср/сам/ко сам ја)
$Избацио $ излаз

Излаз:

Коришћење аргумента командне линије

Аргумент командне линије са командом можете користити као аргумент у замени команде.

Пример#8:

Направите басх датотеку под називом цмдсуб3.сх са следећим писмом. ` басенаме команда `се овде користи за преузимање назива датотеке из 2ндаргумент командне линије и ускладиштен у променљивој, $ назив датотеке . Знамо 1старгумент командне линије је назив извршне скрипте који је означен са $ 0.

#!/бин/басх
назив документа=``басенаме 1 УСД``
Избацио 'Назив датотеке је$ назив датотеке. '

Покрените скрипту са следећом вредношћу аргумента.

$басхцмдсуб3.сх Десктоп/темп/хелло.ткт

Овде, основно име стазе, Десктоп/темп/хелло.ткт је ' хелло.ткт ’. Дакле, вредност $ назив датотеке биће хелло.ткт .

Излаз:

Закључак:

У овом водичу су приказане различите употребе замена команди. Ако морате да радите са више команди или зависних команди и да привремено сачувате резултат да бисте касније извршили неке друге задатке, можете користити ову функцију у скрипти да бисте добили излаз.

Више информација у видеу: