欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Shell四種運(yùn)行方式(啟動(dòng)方式)的實(shí)現(xiàn)

 更新時(shí)間:2021年03月01日 09:37:31   作者:豁然高  
這篇文章主要介紹了Shell四種運(yùn)行方式(啟動(dòng)方式)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

Shell 是一個(gè)應(yīng)用程序,它的一端連接著 Linux 內(nèi)核,另一端連接著用戶。Shell 是用戶和 Linux 系統(tǒng)溝通的橋梁,我們都是通過 Shell 來管理 Linux 系統(tǒng)。

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

我們可以在 Shell 中一個(gè)個(gè)地輸入命令并及時(shí)查看它們的輸出結(jié)果,整個(gè)過程都在跟 Shell 不停地互動(dòng),這叫做交互式。我們也可以運(yùn)行一個(gè) Shell 腳本文件,讓所有命令批量化、一次性地執(zhí)行,這叫做非交互式。

總起來說,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。

桌面環(huán)境下打開終端為交互式的非登錄Shell

到此這篇關(guān)于Shell四種運(yùn)行方式(啟動(dòng)方式)的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Shell 運(yùn)行方式 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Linux 連續(xù)執(zhí)行多條命令的方法(推薦)

    Linux 連續(xù)執(zhí)行多條命令的方法(推薦)

    下面小編就為大家?guī)硪黄狶inux 連續(xù)執(zhí)行多條命令的方法(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-02-02
  • linux下tomcat常用操作

    linux下tomcat常用操作

    這篇文章主要介紹了linux下tomcat常用操作,需要的朋友可以參考下
    2017-06-06
  • Shell腳本實(shí)現(xiàn)線上服務(wù)器之間對(duì)比文件是否一致

    Shell腳本實(shí)現(xiàn)線上服務(wù)器之間對(duì)比文件是否一致

    這篇文章主要介紹了Shell腳本實(shí)現(xiàn)線上服務(wù)器之間對(duì)比文件是否一致,本文腳本在特殊環(huán)境下使用,需要的朋友可以參考下
    2014-12-12
  • shell備份文件、重命名文件、刪除指定文件的3個(gè)腳本分享

    shell備份文件、重命名文件、刪除指定文件的3個(gè)腳本分享

    這篇文章主要介紹了shell備份文件、重命名文件、刪除指定文件的3個(gè)腳本分享,是學(xué)習(xí)shell時(shí)的練習(xí)腳本,shell新手朋友可以參考下哦
    2014-07-07
  • shell腳本編寫的俄羅斯方塊游戲代碼

    shell腳本編寫的俄羅斯方塊游戲代碼

    這篇文章主要介紹了shell腳本編寫的俄羅斯方塊游戲代碼,非常強(qiáng)大,需要的朋友可以參考下
    2014-04-04
  • Linux下啟動(dòng)tomcat的方法

    Linux下啟動(dòng)tomcat的方法

    tomcat是隨機(jī)啟動(dòng)的,所以在開啟服務(wù)器的時(shí)候要手動(dòng)開啟tomcat,不然沒法訪問,本文給大家介紹linux下啟動(dòng)tomcat的方法,對(duì)linux啟動(dòng)tomcat的相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧
    2015-12-12
  • Linux命令之jar命令使用示例

    Linux命令之jar命令使用示例

    這篇文章主要介紹了Linux命令之jar命令,War包和Jar包有不同的用途和適用場(chǎng)景,開發(fā)人員需要根據(jù)實(shí)際情況選擇適合的歸檔文件類型,需要的朋友可以參考下
    2023-06-06
  • Linux?中l(wèi)s命令的使用詳細(xì)介紹

    Linux?中l(wèi)s命令的使用詳細(xì)介紹

    本文是小編整理的ls命令的基本使用方式,文中示例中的命令選項(xiàng)都可以進(jìn)行任意組合來使用,比如倒序排序使用"ls?-rs"命令等,對(duì)Linux?中l(wèi)s命令用法感興趣的朋友一起看看吧
    2022-06-06
  • 一文詳解Linux?du命令的使用方法

    一文詳解Linux?du命令的使用方法

    在Linux系統(tǒng)中,du命令是一款功能強(qiáng)大且實(shí)用的工具,可用于查看文件和目錄的磁盤使用情況,本文將深入探討du命令的使用方法和一些常見選項(xiàng),以協(xié)助您更全面地理解和有效地管理系統(tǒng)中的存儲(chǔ)空間,需要的朋友可以參考下
    2024-02-02
  • 如何編寫健壯的Bash腳本(經(jīng)驗(yàn)分享)

    如何編寫健壯的Bash腳本(經(jīng)驗(yàn)分享)

    本文介紹下,編寫出健壯的bash shell腳本的方法,感興趣的朋友參考學(xué)習(xí)下
    2013-11-11

最新評(píng)論