好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Shell四種運行方式(啟動方式)的實現

Shell四種運行方式(啟動方式)的實現

熱門標簽:電商外呼系統排名 合肥電銷外呼系統供應商 蘭州電銷機器人加盟 黑暗之魂3地圖標注 AI智能電銷機器人壞處 沈陽ai電銷智能機器人 電話機器人對家居行業幫助大嗎 地圖標注審核周期 如何申請400的電話呀

Shell 是一個應用程序,它的一端連接著 Linux 內核,另一端連接著用戶。Shell 是用戶和 Linux 系統溝通的橋梁,我們都是通過 Shell 來管理 Linux 系統。

我們可以直接使用 Shell,也可以輸入用戶名和密碼后再使用 Shell;第一種叫做非登錄式,第二種叫做登錄式。

我們可以在 Shell 中一個個地輸入命令并及時查看它們的輸出結果,整個過程都在跟 Shell 不停地互動,這叫做交互式。我們也可以運行一個 Shell 腳本文件,讓所有命令批量化、一次性地執行,這叫做非交互式。

總起來說,Shell 一共有四種運行方式:

  • 交互式的登錄 Shell;
  • 交互式的非登錄 Shell;
  • 非交互式的登錄 Shell;
  • 非交互式的非登錄 Shell。

判斷 Shell 是否是交互式

判斷是否為交互式 Shell 有兩種簡單的方法。

1) 查看變量-的值,如果值中包含了字母i,則表示交互式(interactive)。

【實例1】在 CentOS GNOME 桌面環境自帶的終端下輸出-的值:

[jb51.net]$ echo $-
himBH

包含了i,為交互式。

【實例2】在 Shell 腳本文件中輸出-的值:

[jb51.net]$ cat test.sh
#!/bin/bash

echo $-
[jb51.net]$ bash ./test.sh
hB

不包含i,為非交互式。注意,必須在新進程中運行 Shell 腳本。

2) 查看變量PS1的值,如果非空,則為交互式,否則為非交互式,因為非交互式會清空該變量。

【實例1】在 CentOS GNOME 桌面環境自帶的終端下輸出 PS1 的值:

[mozhiyan@localhost]$ echo $PS1
[\u@\h \W]\$

非空,為交互式。

【實例2】在 Shell 腳本文件中輸出 PS1 的值:

[jb51.net]$ cat test.sh
#!/bin/bash

echo $PS1
[jb51.net]$ bash ./test.sh

空值,為非交互式。注意,必須在新進程中運行 Shell 腳本。

判斷 Shell 是否為登錄式

判斷 Shell 是否為登錄式也非常簡單,只需執行shopt login_shell即可,值為on表示為登錄式,off為非登錄式。

shopt 命令用來查看或設置 Shell 中的行為選項,這些選項可以增強 Shell 的易用性。

【實例1】在 CentOS GNOME 桌面環境自帶的終端下查看 login_shell 選項:

[jb51.net]$ shopt login_shell
login_shell  off

【實例2】按下Ctrl+Alt+Fn組合鍵切換到虛擬終端,輸入用戶名和密碼登錄后,再查看 login_shell 選項:

[jb51.net]$ shopt login_shell
login_shell  on

【實例3】在 Shell 腳本文件中查看 login_shel 選項:

[jb51.net]$ cat test.sh
#!/bin/bash

shopt login_shell
[jb51.net]$ bash ./test.sh
login_shell  off

同時判斷交互式、登錄式

要同時判斷是否為交互式和登錄式,可以簡單使用如下的命令:

echo $PS1; shopt login_shell

或者

echo $-; shopt login_shell

常見的 Shell 啟動方式

1) 通過 Linux 控制臺(不是桌面環境自帶的終端)或者 ssh 登錄 Shell 時(這才是正常登錄方式),為交互式的登錄 Shell。

[jb51.net]$ echo $PS1;shopt login_shell
[\u@\h \W]\$
login_shell  on

2) 執行 bash 命令時默認是非登錄的,增加--login選項(簡寫為-l)后變成登錄式。

[jb51.net]$ cat test.sh
#!/bin/bash

echo $-; shopt login_shell
[jb51.net]$ bash -l ./test.sh
hB
login_shell  on

3) 使用由()包圍的組命令或者命令替換進入子 Shell 時,子 Shell 會繼承父 Shell 的交互和登錄屬性。此種子進程只是又fork創建,沒有執行exce,不會重新加載配置文件

[jb51.net]$ bash
[jb51.net]$ (echo $PS1;shopt login_shell)
[\u@\h \W]\$
login_shell  off
[jb51.net]$ bash -l
[jb51.net]$ (echo $PS1;shopt login_shell)
[\u@\h \W]\$
login_shell  on

4) ssh 執行遠程命令,但不登錄時,為非交互非登錄式。

[jb51.net]$ ssh localhost 'echo $PS1;shopt login_shell'

login_shell   off

5) 在 Linux 桌面環境下打開終端時,為交互式的非登錄 Shell。

桌面環境下打開終端為交互式的非登錄Shell

到此這篇關于Shell四種運行方式(啟動方式)的實現的文章就介紹到這了,更多相關Shell 運行方式 內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 詳解spring boot 以jar的方式啟動常用shell腳本

標簽:淮南 河北 黔南 隴南 通遼 河池 黔南 常州

巨人網絡通訊聲明:本文標題《Shell四種運行方式(啟動方式)的實現》,本文關鍵詞  Shell,四種,運行,方式,啟動,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Shell四種運行方式(啟動方式)的實現》相關的同類信息!
  • 本頁收集關于Shell四種運行方式(啟動方式)的實現的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 成人av播放| 免费观看A片在线观看| 扒开把花蒂露出来| 亚洲成人网在线观看| 国产熟女高潮一区二区三区| 男同免费freeroom| 九九99国产精品视频| s货叫大点声C烂你的SB| 三级特黄90分钟在线观看| 国产免费观看一级视频| www.精品在线| 开心四房播日韩视频| 国产一区二区三区免费播放| gay网| 国产精品尤物在线| 福利视频你懂的| 英国特级婬片A片免费看| 厨房掀起裙子从后面进去| 国模棚拍1000人体写真| 国产精品熟女乱婬999| 97人妻精品一区二区免费| 色综合久久88色综合天天提莫| jizzjizz国产| 波多野爆吞多人精子| 日本边吃奶边摸边做在线视频| 日本一区二区三区免费观看| 欧美亚洲国产激情一区二区| 西瓜电影成人片在线播放| 制服 丝袜 热舞 无码 国产 | 勾魂尤物丰满大胸极品美女| 铃口导尿调教| 亲吻视频| 无码人妻一区二区三区线花季软件 | 啊轻点灬大ji巴太粗太高h| 澜沧| 性欧美video高清熟睡| 国产AV亚洲精品久久久久| 人妻少妇91果冻传媒麻豆 | 白丝紧致爆乳自慰喷水AV蜜桃| 亚洲图区综合网| 国产91??对白在线播放边|