に私が持っているbash
:バッシュのパラメータ展開は対話型シェルで動作しますが、いないユーザーのコンソールでスクリプト
$ echo $SHELL
/bin/bash
$ bash --version
GNU bash, version 4.2.46(1)-release (x86_64-redhat-linux-gnu)
私は、ファイルtest.shのコードがあります。
$ cat test.sh
aaa='---aa-aa---'
echo "${aaa}"
echo 'does not work...'
# trim "-"
echo ${aaa/+(-)}
echo ${aaa%%+(-)}
echo 'works for one symbol...'
echo ${aaa%-}
echo ${aaa/-}
最後の2行をうまく動作しますが、前の動作同じ時間で
$ bash test.sh
---aa-aa---
does not work...
---aa-aa---
---aa-aa---
works for one symbol...
---aa-aa--
--aa-aa---
あなたはそれが動作このコンソールを作成しようとするならば、:
$ aaa='---aa-aa---'
$ echo ${aaa/+(-)}
aa-aa---
$ echo ${aaa%%+(-)}
---aa-aa
だから、なぜそれがスクリプトでは動作しませんか?
https://stackoverflow.com/questions/26726264/why-does-the-pattern-work-in-my-interactive-shell-but-not-a-の複製としてこれを閉じるかどうかを判断しようとしています。スクリプトを実行するか、それ以外の方法で実行します。 @トライプレー、ここに意見がありますか? –
...実際には、レビューでは、この質問のインスタンスが他のものよりもはっきりと尋ねられていると思います(最初に質問されてから)。 –