$-
Die aktuellen Optionsflags werden von der Shell selbst, beim Aufrufen oder mithilfe des set
integrierten Befehls festgelegt:
$ echo $-
himBH
$ set -a
$ echo $-
ahimBH
"${-#*i}"
lautet die Syntax zum Entfernen von Zeichenfolgen: (aus der POSIX-Dokumentation )
$ {parameter # [word]}
Kleinstes Präfixmuster entfernen. Das Wort soll zu einem Muster erweitert werden. Die Parametererweiterung ergibt dann einen Parameter, wobei der kleinste Teil des Präfixes mit dem gelöschten Muster übereinstimmt. Wenn vorhanden, darf das Wort nicht mit einem nicht zitierten '#' beginnen.
$ {parameter ## [word]}
Größtes Präfixmuster entfernen. Das Wort soll zu einem Muster erweitert werden. Die Parametererweiterung ergibt dann einen Parameter, wobei der größte Teil des Präfixes mit dem gelöschten Muster übereinstimmt.
Also ${-#*i}
entferne die kürzeste Zeichenkette bis zum ersten i
Zeichen:
$ echo "${-#*i}"
mBH
if [ "${-#*i}" != "$-" ]
Überprüfen Sie in Ihrem Fall, ob Ihre Shell interaktiv ist oder nicht.