Apa itu "s" di dalam "$ -"?


10

Saya biasanya sangat menyadari isi $-. Pada CentOS terbaru saya mendapatkan:

[grochmal@orion ~]$ echo $-
himBH

hmBHsemua opsi dari set, dan iberarti bahwa shell saya bersifat interaktif.

Namun, di Arch Linux saya mendapat:

[grochmal@haps ~]$ echo $-
himBHs

Saya tidak dapat menemukan sesuatu yang berguna man bashdan set -smemberi saya kesalahan. Apa artinya itu s?

Jawaban:


13

The -spilihan adalah bash awal panggilan dengan -s, yang berarti "sumber perintah dari 'dalam standar' Dari manual.:

-s Jika opsi -s hadir, atau jika tidak ada argumen yang tersisa setelah pemrosesan opsi, maka perintah dibaca dari input standar. Opsi ini memungkinkan parameter posisi diatur ketika menjalankan shell interaktif.

Sangat mudah untuk diuji:

$ bash -c 'echo $-'
hBc

$ bash -sc 'echo $-'
hBcs

Memulai shell baru untuk semua versi bash sebelumnya tidak menetapkan opsi itu secara default:

$ b32sh -li
$ echo $-
himBH

Tetapi dalam bash 4.4:

$ b44sh -li
$ echo $-
himBHs

Dan bagian kedua menjelaskan mengapa saya mendapatkannya di Arch. Nilai CentOS saya BASH_VERSIONadalah 4.2.46 (1) -release sementara di Arch is 4.4.5 (1) -release.
grochmal
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.