最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

shell腳本中取消重定向的方法實例

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

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

復制代碼 代碼如下:

#!/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是標準輸出,也即是STDOUT,2是標準錯誤輸出,即是STDERR,1和2本來是輸出在顯示器上的,而3、4是表示兩個文件描述符,可理解成是兩個保存1和2的臨時變量, 3>&1表示把文件描述符1的賦值給文件描述符3,也可以理解為是把文件描述符1(當前標準輸出)的規(guī)則保存到了文件描述符3中,這時再把1的輸出重定向到文件中,在下面的shell程序中,我們又使用了1>&3這就表示是把保存在文件描述符3中的原標準輸出的規(guī)則重新賦值給文件描述符1,原來標準輸出的規(guī)則是輸出到顯示器上,而不是輸出到一個文件中。這就是整個重定向和取消重定向還原的過程。2和4也是一樣的道理。

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

復制代碼 代碼如下:

[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é)果了嗎??? 沒看到么??? 那就仔細看了,^_^

相關文章

  • 詳解Linux中退出編輯模式的命令

    詳解Linux中退出編輯模式的命令

    這篇文章主要介紹了Linux中退出編輯模式的命令,本文給大家介紹的非常詳細,具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2019-05-05
  • linux中編寫自己的并發(fā)隊列類(Queue 并發(fā)阻塞隊列)

    linux中編寫自己的并發(fā)隊列類(Queue 并發(fā)阻塞隊列)

    這篇文章主要介紹了linux中編寫并發(fā)隊列類,功能有:并發(fā)阻塞隊列、有超時限制、有大小限制
    2013-12-12
  • 淺談shell腳本中的控制流結(jié)構(gòu)

    淺談shell腳本中的控制流結(jié)構(gòu)

    今天小編就為大家分享一篇關于淺談shell腳本中的控制流結(jié)構(gòu),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • Linux Shell簡介

    Linux Shell簡介

    本文編譯整理時對相關章節(jié)做了相應的刪改處理,去掉了針對Mandrake Linux的部分內(nèi)容
    2013-06-06
  • shell腳本 自動創(chuàng)建用戶詳解及實例代碼

    shell腳本 自動創(chuàng)建用戶詳解及實例代碼

    這篇文章主要介紹了shell腳本 自動創(chuàng)建用戶詳解及實例代碼的相關資料,需要的朋友可以參考下
    2017-03-03
  • Linux sort 命令快速上手指南

    Linux sort 命令快速上手指南

    作為運維工程師,處理日志、分析數(shù)據(jù)是家常便飯,sort命令是Linux中高效整理文本的神器,能快速對文件內(nèi)容排序、去重、統(tǒng)計,本文用最簡潔的方式,幫你掌握sort的核心用法,感興趣的朋友一起看看吧
    2025-03-03
  • 詳解Sed命令的用法與正則表達式元字符

    詳解Sed命令的用法與正則表達式元字符

    sed是一種流編輯器,它是文本處理中非常有用的工具,能夠完美的配合正則表達式使用,功能不同凡響。這篇文章主要介紹了Sed命令使用與正則表達式元字符,需要的朋友可以參考下
    2017-12-12
  • Shell中的變量使用小結(jié)

    Shell中的變量使用小結(jié)

    這篇文章主要介紹了Shell中的變量使用小結(jié),本文總結(jié)了變量的語法、常見使用形式等內(nèi)容,并分別給出代碼示例,需要的朋友可以參考下
    2015-05-05
  • Idea使用Bashsupport插件編輯Shell腳本的方法

    Idea使用Bashsupport插件編輯Shell腳本的方法

    這篇文章主要介紹了Idea插件之——Bashsupport編輯Shell腳本的相關知識,功能非常齊全有檢查錯誤并且還可以在idea中直接運行shell腳本,本教程帶領大家一步步演示插件的安裝和配置,需要的朋友可以參考下
    2021-05-05
  • Shell腳本遍歷一個日期范圍實例

    Shell腳本遍歷一個日期范圍實例

    這篇文章主要介紹了Shell腳本遍歷一個日期范圍實例,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下
    2015-03-03

最新評論

定边县| 永寿县| 横峰县| 玛多县| 南华县| 田东县| 盱眙县| 安国市| 濮阳县| 南木林县| 武强县| 康平县| 青田县| 尼玛县| 沐川县| 平顺县| 公安县| 阿尔山市| 电白县| 孝感市| 宜城市| 虞城县| 弥勒县| 奇台县| 马边| 武清区| 宣化县| 离岛区| 金坛市| 应用必备| 邯郸市| 株洲市| 台北县| 内黄县| 道真| 象州县| 临沭县| 和静县| 汝南县| 临西县| 原平市|