_arr+=( '"${_arrev} is an actual "${array[@]}"' ) ⏎
_arr+=( '"${_arrev} is created as a result"' )
_arr+=( '"of reversing the key order in"' )
_arr+=( '"this "${_arr}. It handles zsh and"' )
_arr+=( '"bash arrays intelligently by tracking"' )
_arr+=( '"shell "$ENV." quotes=fine ( i hope ) "' )
. <<REVERSE /dev/stdin ⏎
_arrev=( $(: $((l=${#_arr[@]}${ZSH_VERSION++1})) ; printf '"${_arr[$(('$l'-%d))]}" ' `seq 1 $l`) )
REVERSE
echo ; printf %s\\n ${_arrev}
"shell "$ENV." quotes=fine ( i hope ) "
"bash arrays intelligently by tracking"
"this "${_arr}. It handles zsh and"
"of reversing the key order in"
"${_arrev} is created as a result"
"${_arrev} is an actual "${array[@]}"
これは可能な配列を処理するはずだと思います。
そこで何が起こっているかに興味があるなら、まずここを見てみることをお勧めします。それなら多分ここ、間違いなくここ、そして時間があればこことここ。
これらすべての回答で、ヒアドキュメント(および他の多くのドキュメント)のさまざまな側面について説明します。"_$1"
たとえば、変数を2回評価する方法について説明します。これは上記で行われ、1つは、5行または6行で名前が付けられた別の関数をグローバルに宣言する関数を宣言します_$1() { func body ; }
。正しく使えばかなり重宝します。
ウェル間の自動切り替えに関しては、bash/zsh,
それは別のことですが、非常に単純です。ここを参照してください。