を宣言し、私は(私が見つけた「何の一致を得ていない。これは、zshのでは違法であると考えられる次の構文bashの、zshの:[*](私のオハイオ州)
$ declare -a THIS[*]
を持っているbashスクリプトで働いています:THIS [*] "エラー)。誰かがこれをzshに翻訳するのを助けることができますか?
また、[*]
の構文は何ですか? (私たちは、配列を宣言している知っているが、なぜ[*]?)
コードが使用される場合の例を提供し、それが有効である方法を説明するためにアップデート - 私はしましたpassword free ssh
declare -a SSSHA_KEYS[*]
# --- PARSE ARGS --- #
sssha_parse_args() {
local OPTIND=1
while getopts "xe:k:t:" OPT; do
#echo "$OPT $OPTARG $OPTIND"
case $OPT in
t) SSSHA_ARGS="-t $OPTARG" ;;
e) SSSHA_ENV="$OPTARG" ;;
k) [ -f "${OPTARG}" ] && SSSHA_KEYS[${#SSSHA_KEYS[*]}]="$OPTARG" ;;
x) SSSHA_STOP_ON_EXIT=$OPT
esac
done
shift $(($OPTIND - 1))
# set default key, if none specified
if [ -z "${SSSHA_KEYS[*]}" ]; then
for key in $HOME/.ssh/id_[rd]sa; do
[ -f "$key" ] && SSSHA_KEYS[${#SSSHA_KEYS[*]}]="$key"
done
fi
}
にエリックEngstromのポストから数行をコピーした私は(我々はそれが後で必要がありますどのように多くの項目がわからないよう)[*]
がダイナミックイテレータのいくつかの種類として使用されていると信じています。私はちょうどzshの同等の宣言を知りたいです!
"(oh my)"とはどういう意味ですか? – Shahbaz
ライオンズ、トラ、ベア... – danodonovan
zshでどの位のスペースが占めるかを制御する方法はまったくありません(読み込み専用にしない限り)ので、 'declare -a SSSHA_KEYS'を実行してみてください。 @ormaajの説明を信頼すると、これらの宣言は同等でなければなりません。他の投稿されたコードは、 'SSSHA_KEYS [$ {#SSSHA_KEYS [*]}] = smth'を除いて変更なしで動作する可能性が高いです。 zsh配列のインデックスは1から始まり、 'ARR [ARR_LENGTH]'は最後の項目に割り当てられ、後ろには割り当てられないので、 'SSHA_KEYS + =(smth)'を使用してください。 – ZyX