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

shell腳本中取消重定向的方法實(shí)例

 更新時(shí)間:2015年03月18日 11:08:08   投稿:junjie  
這篇文章主要介紹了shell腳本中取消重定向的方法實(shí)例,本文直接給出代碼實(shí)例,需要的朋友可以參考下

在上一篇關(guān)于shell編程的例子中,有講到把shell腳本進(jìn)行擴(kuò)展之后重定向到一個(gè)文件中,以便進(jìn)行查看和調(diào)試http://www.dbjr.com.cn/article/62435.htm。但是,若是有另一種情況:只是在某些地方進(jìn)行重定向,而其他地方不進(jìn)行重定向。那么我們就來修改一下上一篇中的例子來進(jìn)行這種需求的滿足:

復(fù)制代碼 代碼如下:

#!/bin/bash
function setlogfile
{
    if ! [ -z "$1" ]; then
        echo "logfilename is not empty!" >> kthh
        exec 3>&1
        exec 4>&2
        exec 2>> $1
        exec 1>> $1
    fi   
}

num1=$1
logfile=$2
execlogfile=$3

setlogfile ${execlogfile}
set -x
if [ $num1 -eq 0 ]; then
    echo "num1 is 0">> ${logfile}
elif [ $num1 -ge 0 ]; then
    echo "num1 is grate 0">> ${logfile}
else
    echo "num1 is less 0">> ${logfile}
fi
exec 2>&4
exec 1>&3
if [ $num1 -eq 0 ]; then
    echo "num1 is 0 again">> ${logfile}
fi


在函數(shù)setlogfile中添加了exec 3>&1;exec 4>&2這兩句,而其中,3、1、4、2都是表示文件描述符,1是標(biāo)準(zhǔn)輸出,也即是STDOUT,2是標(biāo)準(zhǔn)錯(cuò)誤輸出,即是STDERR,1和2本來是輸出在顯示器上的,而3、4是表示兩個(gè)文件描述符,可理解成是兩個(gè)保存1和2的臨時(shí)變量, 3>&1表示把文件描述符1的賦值給文件描述符3,也可以理解為是把文件描述符1(當(dāng)前標(biāo)準(zhǔn)輸出)的規(guī)則保存到了文件描述符3中,這時(shí)再把1的輸出重定向到文件中,在下面的shell程序中,我們又使用了1>&3這就表示是把保存在文件描述符3中的原標(biāo)準(zhǔn)輸出的規(guī)則重新賦值給文件描述符1,原來標(biāo)準(zhǔn)輸出的規(guī)則是輸出到顯示器上,而不是輸出到一個(gè)文件中。這就是整個(gè)重定向和取消重定向還原的過程。2和4也是一樣的道理。

閑話少說,先看運(yùn)行結(jié)果:

復(fù)制代碼 代碼如下:

[root@UFO shellprogram]# ./testexecutelog.sh 0 msglog execlog
+ exec
+ '[' 0 -eq 0 ']'
+ echo 'num1 is 0 again'

[root@UFO shellprogram]# cat execlog
+ '[' 0 -eq 0 ']'
+ echo 'num1 is 0'
+ exec


看到結(jié)果了嗎??? 沒看到么??? 那就仔細(xì)看了,^_^

相關(guān)文章

  • linux shell 自定義函數(shù)方法(定義、返回值、變量作用域)

    linux shell 自定義函數(shù)方法(定義、返回值、變量作用域)

    linux shell 可以用戶定義函數(shù),然后在shell腳本中可以隨便調(diào)用。下面說說它的定義方法,以及調(diào)用需要注意那些事項(xiàng)
    2014-09-09
  • Shell日志分析常用命令和例子

    Shell日志分析常用命令和例子

    這篇文章主要介紹了Shell日志分析常用命令和例子,本文重點(diǎn)在一樣實(shí)現(xiàn)日志分析命令語句例子上,本文給出了10條常用的分析實(shí)例,需要的朋友可以參考下
    2014-12-12
  • shell 腳本中常用的內(nèi)置變量(Bash 內(nèi)置變量)

    shell 腳本中常用的內(nèi)置變量(Bash 內(nèi)置變量)

    在 Bash 解釋器中,內(nèi)置了許多變量,這些變量的功能是解釋器自帶的,我們?cè)诰帉憇hell腳本時(shí)如果能靈活的使用它們,對(duì)腳本的編寫效率以及差錯(cuò)大有幫助, 下面一一介紹這些變量,一起看看吧
    2021-05-05
  • 詳解linux下tree命令的用法

    詳解linux下tree命令的用法

    tree是一種遞歸目錄列表命令,產(chǎn)生一個(gè)深度縮進(jìn)列表文件,這是彩色的ALA dircolors如果ls_colors設(shè)置環(huán)境變量和輸出是TTY。下面通過本文給大家分享linux下tree命令的用法,感興趣的朋友一起看看吧
    2017-09-09
  • Linux文本查看命令及其選項(xiàng)詳解(cat,head,tail)

    Linux文本查看命令及其選項(xiàng)詳解(cat,head,tail)

    這篇文章主要介紹了Linux文本查看命令及其選項(xiàng)詳解(cat,head,tail),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Shell腳本生成隨機(jī)密碼的若干種可能

    Shell腳本生成隨機(jī)密碼的若干種可能

    這篇文章主要介紹了Shell腳本生成隨機(jī)密碼的若干種可能,需要的朋友可以參考下
    2017-09-09
  • exit(-1)或者return(-1)shell得到的退出碼為什么是255

    exit(-1)或者return(-1)shell得到的退出碼為什么是255

    exit(-1)或者return(-1)shell得到的退出碼為是255,大家知道為什么嗎?帶著這個(gè)疑問來腳本之家學(xué)習(xí)下吧,本篇文章告訴大家答案
    2015-10-10
  • 利用shell命令統(tǒng)計(jì)日志的方法詳解

    利用shell命令統(tǒng)計(jì)日志的方法詳解

    這篇文章主要給大家介紹了關(guān)于利用shell命令統(tǒng)計(jì)日志的方法,通過這個(gè)命令將會(huì)對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,文中給出了詳細(xì)的示例代碼,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-09-09
  • Shell alias給命令設(shè)置別名的實(shí)現(xiàn)方法

    Shell alias給命令設(shè)置別名的實(shí)現(xiàn)方法

    這篇文章主要介紹了Shell alias給命令設(shè)置別名的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • shell中的數(shù)組操作小結(jié)和冒泡排序?qū)崿F(xiàn)腳本分享

    shell中的數(shù)組操作小結(jié)和冒泡排序?qū)崿F(xiàn)腳本分享

    這篇文章主要介紹了shell中的數(shù)組操作小結(jié)和冒泡排序?qū)崿F(xiàn)腳本分享,需要的朋友可以參考下
    2014-12-12

最新評(píng)論