Добродошли у још један петак ...
Време је да упознате мали део терминала. После много размишљања одлучио сам да направим пост о стандардни потоци; Иако ће то бити површно, мислим да је то нешто што би сви требали знати.
Стандардни ток
Стандардни ток Састоји се од неколико комуникационих канала између корисника и терминала. Ови улазно / излазни „канали“ приказују или прикупљају информације када се изврши наредба.
3 И / О везе су: стдин Стандардни улаз, стдоут Стандардни излаз, стдерр Стандардна грешка.
стдин: стандардни улаз
Стандардни унос је начин на који хватамо информације из наредбе било путем цеви, преусмеравања, тастатуре итд. Идентификујемо је са дескриптором датотеке 0.
Пример стдина би био:
сортирати <списак
Потребне су све информације које се налазе на листи - у овом случају бројеви написани насумично - и приликом преусмеравања датотеке у команду лс сортирају нумеричку листу по абецеди. У овом примеру заставе су имплицитне.
стдоут: стандардни излаз
Стандардни излаз, како му и само име каже, приказује излаз наредбе преко конзоле. Ако напишемо да ли су све информације које нам приказују на екрану стандардни излаз. Представљен је описом 1.
Сада ћу покушати да стдин и стдоут направим са скриптом написаном на басх, једноставно зато што волим басх хахаха. 🙂
тест.сх
#! / бин / басх ако је [-т 0]; затим ехо "Користите стдоут" елиф [-т 1]; затим ецхо "Користите стдин" елсе ецхо "Брутал еррор" фи
Сада снимак екрана који показује како се користи скрипта. Приликом преусмеравања или употребе цеви са употребом скрипте тест -т да знамо да ли се извршава само стдоут скрипта, а ако није очигледно је стдин.
басх тест.сх лс | басх тест.сх басх тест.сх </ етц / пассвд
Не заборавите да измените команду и вежбате тако да научите.
стдерр: Стандардна грешка
Стандардна грешка је начин на који програми приказују грешке или дијагностику. Представља га дескриптор 2.
Да бисмо разумели концепт, ово је ситуација: када желимо да сачувамо грешку команде, прво на шта помислимо је да преусмеримо излаз у обичан текст.
лс> инфо.ткт
Ово би функционисало, подаци о наредби ће се чувати у обичној текстуалној датотеци. Али приликом чувања грешке, она је не чува, већ је приказује на екрану и обична текстуална датотека је празна.
Уместо тога, ако користимо 2> да означимо да сачувамо стдерр у датотеци:
лс фоо 2> инфо.ткт
Сада ће информације о грешкама сачувати у текстуалној датотеци.
Већина Граната дозволити да се стдерр и стдоут чувају у једној командној наредби са &> где је Фоо непостојећи директоријум
лс Довнлоадс Фоо &> инфо.ткт
Ова датотека ће садржати информације о грешци приликом покретања лс-а на Фоо-у и имаће списак директорија у одељку Преузимања.
И на крају, по чему је тај познати 2> & 1?
Једноставно, преусмерите стдерр на стдоут. То & у средини> и 1 значи да ће преусмерити на стдоут. Да га нема, било би нешто попут ... „преусмерите грешку у датотеку 1“.
А са овим је могуће преусмерити:
- стдоут у датотеку
- стдерр у датотеку
- стдоут до стдерр
- стдерр у стдоут
- стдерр и стдоут у датотеку
- између осталог
То је то за данашње људе. Читамо и захваљујемо вам што сте навратили. 😀
Занимљиво. Захваљујући вашим упутствима, Басх ми се много више свиђа.
Поштовани, занимљиво, међутим, имате грешку у следећем реду:
„А приликом преусмеравања датотеке на команду лс“, требало би да буде „и када се датотека преусмерава на наредбу сортирања“.
Поздрав.
На почетку текста је грешка, када наведете команду „лс“, требало би да буде „сортирај“:
«Узмите све информације са списка - у овом случају бројеве написане насумично - и приликом преусмеравања датотеке у команду лс (овде би било сортирање)»
Поздрав и хвала што делите свој рад
Ово је сјајно за црон, где желите да се излаз испразни (/ дев / нулл), али да се грешке чувају у датотекама. Такође, када то радим, обично користим наредбу дате да бих прецизирао када тачно нису успели.
Басх (сх) има ове алате тако развијене у Уник филозофији „уради једно, и то добро“
Па нисам ништа сазнао
Хаха па то је прилично добро објашњено, шта нисте разумели?