$-
adalah flag opsi saat ini ditetapkan oleh shell itu sendiri, pada doa, atau menggunakan set
perintah builtin:
$ echo $-
himBH
$ set -a
$ echo $-
ahimBH
"${-#*i}"
adalah sintaks untuk penghapusan string: (dari dokumentasi POSIX )
$ {parameter # [word]}
Hapus Pola Awalan Terkecil. Kata harus diperluas untuk menghasilkan pola. Ekspansi parameter kemudian akan menghasilkan parameter, dengan bagian terkecil dari awalan yang cocok dengan pola dihapus. Jika ada, kata tidak akan dimulai dengan tanda kutip '#'.
$ {parameter ## [word]}
Hapus Pola Awalan Terbesar. Kata harus diperluas untuk menghasilkan pola. Ekspansi parameter kemudian akan menghasilkan parameter, dengan bagian terbesar dari awalan yang cocok dengan pola dihapus.
Jadi ${-#*i}
hapus string terpendek hingga i
karakter pertama :
$ echo "${-#*i}"
mBH
Dalam kasus Anda, if [ "${-#*i}" != "$-" ]
periksa apakah shell Anda interaktif atau tidak.