在Linux,很多命令都接受標準輸入作為命令的參數。比如grep,echo命令都是可以接受標準輸入作為命令的參數。
grep命令的全稱是全局正則表達式打印,它是Linux中功能最強大且最常用的命令之一。
grep在一個或多個輸入文件中搜索與指定模式匹配的行,并將匹配行寫入標準輸出。如果未指定文件,grep則從標準輸入讀取內容。
在本教程中,我們將在dart創建進程運行grep命令并將通過管道傳遞字符串作為grep命令的參數,參數將作為grep命令的標準輸入傳遞。
在dart,進程的標準輸入僅接受一個參數并且類型是Stream
,因此不能直接傳遞字符串給進程的標準輸入。
必須在傳遞給進程的標準輸入之前將字符串轉換為二進制流。轉換字符串為二進制流,這涉及兩個步驟的操作。
第一步是將字符串轉換為二進制的的值,在這一步驟中,dart內置Utf8Codec
對象encode
方法可以幫助我們轉換字符串為二進制。
第二步使用二進制的值創建流Stream
。Stream對象value
函數從指定的值創建流Stream。
value
函數可以接受任意類型的值。如果傳遞給value
函數的值是二進制類型,將會返回一個二進制流Stream
。
最后,我們就可以使用Stream
管道pipe
函數傳遞到進程的標準輸入。
在下面的示例中,我們將啟動grep命令的進程,grep進程將在標準輸入中讀取參數搜索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
+關注
關注
87文章
11479瀏覽量
213026 -
字符串
+關注
關注
1文章
589瀏覽量
21171 -
命令
+關注
關注
5文章
733瀏覽量
22742 -
grep
+關注
關注
0文章
23瀏覽量
4868
發布評論請先 登錄
如何高效的將字符串轉二進制數組
LabVIEW二進制數組轉換二進制字符串的詳細資料免費下載

LabVIEW數值數組轉換二進制字符串的詳細資料概述

評論