簡體   English   中英

Linux Bash中的一行命令

[英]One Line Command in Linux Bash

我正在嘗試編寫一個基本的單行Linux Bash命令,該命令將1-1000之間的所有數字作為exe程序的輸入。

exe程序看起來像這樣:

please insert 1:   1(wanted input)
please insert 2:   2(wanted input)
.
.
.
.
please insert 1000:  1000(wanted input)
success!

因此,我嘗試編寫此linux bash命令:

for((i=1;i<=1000;i+=1)); do echo "$i"|./the_exe_file; done

但是問題是我的命令在for ...的每個迭代中打開exe文件,這意味着只有第一個輸入(1)是正確的。 並且,由於某種原因,提供給exe文件的輸入似乎效果不佳。 我能做什么? 我的錯誤在哪里?

提前致謝。

您要求在每次循環迭代中打開該exe。 您只需要將其打開一次,即可將其帶出循環:

for((i=1;i<=1000;i+=1)); do echo "$i"; done | ./the_exe_file

同樣,您可能會發現使用為此目的設計的工具更易讀。

seq 1 1000 | ./the_exe_file

嘗試

printf '%s\n' {1..1000} | ./the_exe_file

在bash中:

$ for f in {1..1000}; do echo $f; done 

去測試:

$ for f in {1..1000}; do echo $f; done  | uniq | wc -l
1000

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM