在Linux,很多命令都接受標(biāo)準(zhǔn)輸入作為命令的參數(shù)。比如grep,echo命令都是可以接受標(biāo)準(zhǔn)輸入作為命令的參數(shù)。
grep命令的全稱是全局正則表達(dá)式打印,它是Linux中功能最強(qiáng)大且最常用的命令之一。
grep在一個(gè)或多個(gè)輸入文件中搜索與指定模式匹配的行,并將匹配行寫入標(biāo)準(zhǔn)輸出。如果未指定文件,grep則從標(biāo)準(zhǔn)輸入讀取內(nèi)容。
在本教程中,我們將在dart創(chuàng)建進(jìn)程運(yùn)行g(shù)rep命令并將通過(guò)管道傳遞字符串作為grep命令的參數(shù),參數(shù)將作為grep命令的標(biāo)準(zhǔn)輸入傳遞。
在dart,進(jìn)程的標(biāo)準(zhǔn)輸入僅接受一個(gè)參數(shù)并且類型是Stream
,因此不能直接傳遞字符串給進(jìn)程的標(biāo)準(zhǔn)輸入。
必須在傳遞給進(jìn)程的標(biāo)準(zhǔn)輸入之前將字符串轉(zhuǎn)換為二進(jìn)制流。轉(zhuǎn)換字符串為二進(jìn)制流,這涉及兩個(gè)步驟的操作。
第一步是將字符串轉(zhuǎn)換為二進(jìn)制的的值,在這一步驟中,dart內(nèi)置Utf8Codec
對(duì)象encode
方法可以幫助我們轉(zhuǎn)換字符串為二進(jìn)制。
第二步使用二進(jìn)制的值創(chuàng)建流Stream
。Stream對(duì)象value
函數(shù)從指定的值創(chuàng)建流Stream。
value
函數(shù)可以接受任意類型的值。如果傳遞給value
函數(shù)的值是二進(jìn)制類型,將會(huì)返回一個(gè)二進(jìn)制流Stream
。
最后,我們就可以使用Stream
管道pipe
函數(shù)傳遞到進(jìn)程的標(biāo)準(zhǔn)輸入。
在下面的示例中,我們將啟動(dòng)grep命令的進(jìn)程,grep進(jìn)程將在標(biāo)準(zhǔn)輸入中讀取參數(shù)搜索hello字符串。
import 'dart:io';
import 'dart:convert';
main() async {
var grep = await Process.start('grep', ['hello']);
Stream.value(const Utf8Codec().encode(server)).pipe(grep.stdin);
}
-
Linux
+關(guān)注
關(guān)注
87文章
11420瀏覽量
212307 -
字符串
+關(guān)注
關(guān)注
1文章
589瀏覽量
20977 -
命令
+關(guān)注
關(guān)注
5文章
722瀏覽量
22631 -
grep
+關(guān)注
關(guān)注
0文章
23瀏覽量
4829
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
二進(jìn)制字符串到十六進(jìn)制字符串轉(zhuǎn)換 拿來(lái)分享
如何高效的將字符串轉(zhuǎn)二進(jìn)制數(shù)組
Labview種如何將一個(gè)數(shù)字轉(zhuǎn)換為5位二進(jìn)制,8位二進(jìn)制以及任意位的二進(jìn)制表示呢
二進(jìn)制字符串到十六進(jìn)制字符串轉(zhuǎn)換,十六進(jìn)制字符串顯示為ASCII碼,拿來(lái)分享
LabVIEW將二進(jìn)制字符串轉(zhuǎn)十進(jìn)制數(shù)值的詳細(xì)資料免費(fèi)下載

LabVIEW二進(jìn)制數(shù)組轉(zhuǎn)換二進(jìn)制字符串的詳細(xì)資料免費(fèi)下載

LabVIEW數(shù)值數(shù)組轉(zhuǎn)換二進(jìn)制字符串的詳細(xì)資料概述

二進(jìn)制如何轉(zhuǎn)換為十進(jìn)制?
從鍵盤輸入10個(gè)整數(shù),以二進(jìn)制形式輸出到“outFile”中

評(píng)論