問題描述
鑑於含有的命令行參數一行明文文件args.in
,它們讀入的陣列。擊:閱讀來自標準輸入ARGS成陣列
問題闡述
我們有4個文件:
args.in:
"ab" c
refimpl.sh:
read -r line
bash -c "bash showargs.sh $line"
arrayimpl.sh:
arr=()
# BEGIN-------------------------
# Input comes from stdin.
# You need to set arr here.
# END---------------------------
echo "${#arr[@]}"
for i in "${arr[@]}"; do
echo "$i"
done
showargs.sh:
echo "$#"
for i in "[email protected]"; do
echo "$i"
done
把日em進入相同的文件夾。我們想要實現的arrayimpl.sh
使
bash refimpl.sh < args.in
和
bash arrayimpl.sh < args.in
給出相同的輸出。
您的解決方案應該只包含一個文件arrayimpl.sh
。
輸出示例
2
ab
c
此問題是一個更好的製劑的this但不是this一個DUP。有些解決方案在那裏工作,但不在這裏例如,當我們有以下輸入:
args.in
:
"a\"b" c
沒有已知的解決方案呢。
@sorontar我想從腳本中讀取腳本。所以它們被稱爲'./refimpl.sh
Cyker
@StevenPenny在這裏添加shebang使問題更長。我認爲任何一種方式都不會影響結果。 – Cyker
如果在標準輸入框中輸入的形式類似''a b「c',則可以執行'eval'arr =($(cat))''。 –