欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

運(yùn)行Shell的方式有哪些-創(chuàng)新互聯(lián)

這篇文章將為大家詳細(xì)講解有關(guān)運(yùn)行Shell的方式有哪些,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

創(chuàng)新互聯(lián)建站主營(yíng)城陽網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,重慶APP軟件開發(fā),城陽h5微信小程序搭建,城陽網(wǎng)站營(yíng)銷推廣歡迎城陽等地區(qū)企業(yè)咨詢

Shell 一共有四種運(yùn)行方式:


  • 交互式的登錄 Shell;

  • 交互式的非登錄 Shell;

  • 非交互式的登錄 Shell;

  • 非交互式的非登錄 Shell。

判斷 Shell 是否是交互式

判斷是否為交互式 Shell 有兩種簡(jiǎn)單的方法。

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

【實(shí)例1】在 CentOS GNOME 桌面環(huán)境自帶的終端下輸出-的值:

[jb51.net]$ echo $-
himBH

包含了i,為交互式。

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

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

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

不包含i,為非交互式。注意,必須在新進(jìn)程中運(yùn)行 Shell 腳本。

2) 查看變量PS1的值,如果非空,則為交互式,否則為非交互式,因?yàn)榉墙换ナ綍?huì)清空該變量。

【實(shí)例1】在 CentOS GNOME 桌面環(huán)境自帶的終端下輸出 PS1 的值:

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

非空,為交互式。

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

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

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

空值,為非交互式。注意,必須在新進(jìn)程中運(yùn)行 Shell 腳本。

判斷 Shell 是否為登錄式

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

shopt 命令用來查看或設(shè)置 Shell 中的行為選項(xiàng),這些選項(xiàng)可以增強(qiáng) Shell 的易用性。

【實(shí)例1】在 CentOS GNOME 桌面環(huán)境自帶的終端下查看 login_shell 選項(xiàng):

[jb51.net]$ shopt login_shell
login_shell  off

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

[jb51.net]$ shopt login_shell
login_shell  on

【實(shí)例3】在 Shell 腳本文件中查看 login_shel 選項(xiàng):

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

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

同時(shí)判斷交互式、登錄式

要同時(shí)判斷是否為交互式和登錄式,可以簡(jiǎn)單使用如下的命令:

echo $PS1; shopt login_shell

或者

echo $-; shopt login_shell

常見的 Shell 啟動(dòng)方式

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

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

2) 執(zhí)行 bash 命令時(shí)默認(rèn)是非登錄的,增加--login選項(xiàng)(簡(jiǎn)寫為-l)后變成登錄式。

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

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

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

[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 執(zhí)行遠(yuǎn)程命令,但不登錄時(shí),為非交互非登錄式。

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

login_shell   off

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

關(guān)于運(yùn)行Shell的方式有哪些就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

本文題目:運(yùn)行Shell的方式有哪些-創(chuàng)新互聯(lián)
文章URL:http://chinadenli.net/article22/cdoicc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司ChatGPT建站公司企業(yè)網(wǎng)站制作微信小程序品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)