https://www.delftstack.com/ja/howto/linux/split-string-into-array-in-bash/
上記を参考に、シェルスクリプトで特定の文字で分割とループをさせようとしています。
test="p_root=0000000001 p_open=0900 p_close=1800 p_root=0000000002 p_open=0830 p_close=2000" IFS="p_root=" read -r -a ip_array <<< "${test}" for ip in "${ip_array[@]}" do echo "結果" "$ip" done for result_tmp in ${mst_business_hours} do eval ${result_tmp} done echo "ここでのid結果" ${p_root} echo "ここでのnum1結果" ${p_open} echo "ここでのnum2結果" ${p_close}
現状は上記状態なのですが、echoの結果は
結果 結果 結果 結果 結果 結果 結果 結果 0000000001 結果 結果 結果 結果 en 結果 0900 結果 結果 cl 結果 se 結果 1800 0000000002 0830 2000
と表示されます。
p_root=0000000001 p_open=0900 p_close=1800 p_root=0000000002 p_open=0830 p_close=2000
を
p_root=0000000001 p_open=0900 p_close=1800
と
p_root=0000000002 p_open=0830 p_close=2000
に分けてそれぞれechoで出力したいのですが、p_rootで分けることもできていない状態です。
test="p_root=0000000001 p_open=0900 p_close=1800 p_root=0000000002 p_open=0830 p_close=2000" IFS="p_root=" read -r -a ip_array <<< "${test}" for ip in "${ip_array[@]}" do echo "ここでのid結果" ${p_root} echo "ここでのnum1結果" ${p_open} echo "ここでのnum2結果" ${p_close} done
とすると
syntax error near unexpected token `done'
というエラーになります。
どうすれば分けてループさせることができるのでしょうか?
回答2件
あなたの回答
tips
プレビュー