[英]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.