簡體   English   中英

獲取linux shell名稱

[英]get linux shell name

在我的程序中,我需要向用戶輸出他正在使用哪個shell。 因此,在文件/etc/udate-motd.d/00-header我寫了printf "$SHELL"但問題是,即使我將Shell切換到zsh,$ SHELL仍等於/ bin / bash。 我通過互聯網搜索,發現可以通過使用MyShell='ps -hp $$'MyShell='ps -hp $$'它,這又是一個問題。 當我使用MyShell時,它是一個帶有進程數的字符串( /etc/update-motd.d/00-header也存在),但是沒有zsh這個詞。

因此,我如何才能親自了解哪個shell使用日志記錄。

“互聯網”為您提供了一種ps語法。 您已標記了此linux,因此請勿使用BSD語法。 嘗試這個:

ps hp $$ -o cmd

沒有破折號

用戶外殼程序在/ etc / passwd中確定。 為什么不從那里獲取信息? 你可以

grep $USER /etc/passwd | cut -f7 -d:

得到外殼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM