Quantcast
Channel: Bashタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 2722

古いバージョンのbashで使ってた変数展開が使えなくなってた話

$
0
0
bash 4.1.x~4.2.xあたりで使ってた以下のようなスクリプトを4.4.xのbashで動かしたときにエラーが出るようになった sample.sh param += ( $@ ) sample_var += ${param[@]:1:((${#param[@]-2}))} echo ${sample_var} 内容としては、引数を配列paramにいれてそっからparamの一部をsample_varに格納するという内容だが 4.2.xまでのbashで実行した場合は特にエラーは発生せず期待通りの出力が得られた。 しかし、4.4.xで実行した場合は以下のエラーとなる。 line 2: ((${#param[@]-2})): bad substitution まぁ、そもそも2行目のsyntaxが間違っていて 正しくは以下だ。これなら4.4.x~でも動く。 sample_var += ${param[@]:1:((${#param[@]}-2))} 古いバージョンのbashだと上手く動いてたのが謎。 詳しいことはよくわからないので有識者の方説明お願いします。

Viewing all articles
Browse latest Browse all 2722

Trending Articles