GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Cara Memeriksa Apakah Shell Masuk/interaktif/batch?

Saya pikir saya mengerti perbedaan antara interaktif, login dan shell batch. Lihat tautan berikut untuk bantuan lebih lanjut:

  • Apa perbedaan antara shell bash 'Login' dan 'Interaktif' (dari situs saudara:serverfault.com)
  • 2.1:Jenis shell:shell interaktif dan login (dari Panduan Pengguna ke Z-Shell )

Pertanyaan saya adalah, bagaimana saya bisa menguji dengan perintah/kondisi jika saya menggunakan shell interaktif, login, atau batch?

Saya mencari perintah atau kondisi (yang mengembalikan true atau false ) dan bahwa saya juga dapat menempatkan pernyataan if. Misalnya:

if [[ condition ]]
   echo "This is a login shell"
fi

Jawaban yang Diterima:

Saya mengasumsikan bash shell, atau yang serupa, karena tidak ada shell yang tercantum dalam tag.

Untuk memeriksa apakah Anda berada di shell interaktif:

[[ $- == *i* ]] && echo 'Interactive' || echo 'Not interactive'

Untuk memeriksa apakah Anda berada di shell login:

shopt -q login_shell && echo 'Login shell' || echo 'Not login shell'

Dengan "batch", saya berasumsi maksud Anda "tidak interaktif", jadi pemeriksaan untuk shell interaktif sudah cukup.


Linux
  1. Bagaimana Menguji Shell Apa yang Saya Gunakan Di Terminal?

  2. Mengapa Bashrc Memeriksa Apakah Shell Saat Ini Interaktif?

  3. CentOS / RHEL :Cara Mengubah shell login pengguna

  1. Mengapa Shell Interaktif Pada Shell Login Osx Secara Default?

  2. Bagaimana Cara Memeriksa Substring Di Shell Script Bash?

  3. Cara memeriksa apakah ada perintah shell dari PHP

  1. Bagaimana Cara Memeriksa Shell Yang Saya Gunakan?

  2. Cara Mengganti Shell di Linux

  3. Cara Memeriksa Riwayat Masuk Linux