カーネル2.6.xの使用
これは、前の質問の解決策を完了するためのものです-値の1つをスキップしながら、変数を反復処理する方法は?。
2つの変数から位置ごとに値を抽出し、それらを同じ位置の3番目の値に連結するにはどうすればよいですか?
このOSでは、sh以外のシェルはEntware-NGパッケージとしてインストールされ、スクリプトの実行後にロードされるため使用できません。結果として、ソリューションはPosix shに基づく必要があります。これは、スクリプトの実行時に使用できる唯一のシェルであるためです。
たとえば、次の変数を使用します...
NETID="10 20 30"
NAME="eth1 eth2 eth3"
...そして次の値で3番目の変数を作成します。
NETS="eth1:10 eth2:20 eth3:30"
あなたはsh
唯一の答えを好むかもしれません。POSIXシェルで動作するものは次のとおりです。
NETS=$(set -- $NETID; for iface in $NAME; do echo "$iface:$1"; shift; done)
コメントバージョン:
NETS=$(
set -- $NETID # Sets the shell parameters to the content of NETID
for iface in $NAME; do # For each interface name...
echo "$iface:$1"
shift # First shell parameter is now the next NETID, if any
done
)
$(...)
構成により、すべてがサブシェルで発生し、親シェルのパラメーターは影響を受けないことに注意してください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加