如果我運行
echo {0..9}
命令,然后我得到以下輸出:
0 1 2 3 4 5 6 7 8 9
我可以以某種方式將字串"0 1 2 3 4 5 6 7 8 9"放入bash腳本內的變數中嗎?我只找到了一種使用方法echo:
x=`echo {0..9}`
但是這種方法意味著執行外部程式。是否有可能只用某種方式管理bash?
感興趣,而不是一種將范圍轉換為字串的方法,而是另外與字串連接,例如:
datafiles=`echo data{0..9}.txt`
uj5u.com熱心網友回復:
首先,
x=`echo {0..9}`
不呼叫外部程式(echo是內置程式),而是創建一個子shell。如果不需要,您可以使用printf(也可以使用內置)-v選項:
printf -v x ' %s' {0..9}
x=${x:1} # strip off the leading space
或者
printf -v datafiles ' data%s.txt' {0..9}
datafiles=${datafiles:1}
或者您可能希望將它們存盤在陣列中:
datafiles=(data{0..9}.txt)
echo "${datafiles[@]}"
即使檔案名包含空格字符,最后一種方法也能正常作業:
datafiles=(data\ {0..9}\ .txt)
printf '%s\n' "${datafiles[@]}"
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/520108.html
標籤:重击支撑扩展
上一篇:從兩個不同的輸出中劃分浮點數
下一篇:帶有空值的命令輸出到csv
