[英]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.