重定向描述符

文件描符??????縮寫??????????????????描述

0????????????????????STDIN??????????標準輸入
1????????????????????STDOUT??????標準輸出
2????????????????????STDERR??????標準錯誤

?

?

1、重定向錯誤和數據

1
2
3
4
[root@logicserver?tmp]#?ls?-al?data1?haha?2>?qingyun.txt?1>pangfeng.txt
[root@logicserver?tmp]#?cat?qingyun;cat?pangfeng.txt?
cat:?qingyun:?沒有那個文件或目錄
-rw-r--r--.?1?root?root?269?9月??18?09:54?data1

?

2、在腳本重定向輸出

?

2.1臨時重定向

故意在腳本生成錯誤消息,可以將單獨的一行輸出重定向到STDERR,在文件描述符數字前加一個and符(&)

1
2
3
4
5
[root@logicserver?tmp]#?vim?data6
#!/bin/bash
#
echo?"This?is?an?error"?>&2
echo?"This?is?a?normal?output"

運行腳本,看不出本質區別

1
2
3
?[root@logicserver?tmp]#?sh?data6
This?is?an?error
This?is?a?normal?output

默認情瓿上,Linux將STDERR定向到STDOUT,但在運行腳本時重定向了STDERR,腳本中所有定向到STDERRR的文本都會被重定向

1
2
3
4
[root@logicserver?tmp]#?sh?data6?2>?data7
This?is?a?normal?output
[root@logicserver?tmp]#?cat?data7
This?is?an?error

?

2.2永久重定向

如果腳本有大量數據需要重定定,那重定向每個echo語名會很煩瑣。用exec命令告訴 shell腳本執行期間重定向某個特定文件描述符

1
2
3
4
5
6
7
?[root@logicserver?tmp]#?vim?data7
#!/bin/bash
#
exec?1>?testout
echo?"This?is?a?test?of?redirecting?all?output"
echo?"from?a?scirpt?to?another?file"
echo?"without?having?to?redirect?every?individual?line"
1
2
3
4
5
6
[root@logicserver?tmp]#?sh?data7
[root@logicserver?tmp]#?ll?test
test?????testout??test.sh??
[root@logicserver?tmp]#?cat?testout?
This?is?a?test?of?redirecting?all?output
from?a?scirpt?to?another?file

exec命令訓動一個新shell并將STDOUT文件描述符重定向到文件

1
2
3
4
5
6
7
8
9
[root@logicserver?tmp]#?vim?data7
#!/bin/bash
#
exec?2>?testerror
echo?"this?is?a?error"
exec?1>?testout
echo?"This?is?a?test?of?redirecting?all?output"
echo?"from?a?scirpt?to?another?file"
echo?"Wrong?a?time"?>&2

?

3、 重定向輸入

exec命令允許將STDINT重定向到Linux系統上文件
exec 0< testfile

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[root@logicserver?tmp]#?cat?data1
the?quick?brown?fox?jumps?over?the?lazy?dog1
the?quick?brown?fox?jumps?over?the?lazy?dog2
the?quick?brown?fox?jumps?over?the?lazy?dog3
the?quick?brown?fox?jumps?over?the?lazy?dog4
the?quick?brown?fox?jumps?over?the?lazy?dog5
the?quick?brown?fox?jumps?over?the?lazy?dog6
[root@logicserver?tmp]#?vim?data8
#!/bin/bash
#
exec?0<?data1
read?LINE
count=1
while?[?$??-eq?0?]
do
????????echo?"Line#$count:$LINE"
????????count=$[?$count+1?]
????????read?LINE
done
1
2
3
4
5
6
7
?[root@logicserver?tmp]#?sh?data8
Line#1:the?quick?brown?fox?jumps?over?the?lazy?dog1
Line#2:the?quick?brown?fox?jumps?over?the?lazy?dog2
Line#3:the?quick?brown?fox?jumps?over?the?lazy?dog3
Line#4:the?quick?brown?fox?jumps?over?the?lazy?dog4
Line#5:the?quick?brown?fox?jumps?over?the?lazy?dog5
Line#6:the?quick?brown?fox?jumps?over?the?lazy?dog6

也可以這樣寫

1
2
3
4
5
6
7
8
9
10
?[root@logicserver?tmp]#?vim?data8
#!/bin/bash
#
exec?0<?data1
count=1
while?read?LINE
do
????????echo?"Line#$count:$LINE"
????????count=$[?$count+1?]
done

?










本文轉自 zouqingyun 51CTO博客,原文鏈接:http://blog.51cto.com/zouqingyun/1697088,如需轉載請自行聯系原作者

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/393271.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/393271.shtml
英文地址,請注明出處:http://en.pswp.cn/news/393271.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

NodeJS學習筆記(一)——搭建開發框架Express,實現Web網站登錄驗證

目錄 開發環境  1、建立工程  2、目錄結構  3、Express配置文件  4、Ejs模板  5、安裝常用庫及頁面分離  6、路由  7、session  8、頁面訪問控制及提示JS是腳本語言&#xff0c;腳本語言都需要一個解析器才能運行。對于寫在HTML頁面里 的JS&#xff0c;瀏覽器充…

LeetCode-208 Implement Trie (Prefix Tree)

題目描述 Implement a trie with insert, search, and startsWith methods. 題目大意 實現對一棵樹的插入、搜索以及前序查找操作。 &#xff08;樹的每個節點代表一個小寫字母&#xff0c;從根節點到葉節點代表一個完整的單詞&#xff09; 示例 E Trie trie new Trie();trie.…

react組件生命周期_React組件生命周期-掛鉤/方法介紹

react組件生命周期React components have several lifecycle methods that you can override to run your code at a particular time in the process.React組件具有幾種生命周期方法&#xff0c;您可以重寫它們以在流程中的特定時間運行代碼。 In this video, Nick Karnik de…

(馬世龍)Linux下CACTI完全搭建技術文檔二

續&#xff08;馬世龍&#xff09;Linux下CACTI完全搭建技術文檔一 6.完成cacti的安裝1. 首先檢查一下rra/下面&#xff0c;有沒有數據2. snmpwalk -v 2c -c public ServerIP if 用來測試被控對象(serverIP)是否開啟了SNMP服務3. snmpwalk -v 2c ServerIP -c public .1.3.6.1.4…

項目經理如何管理情緒?這三本書管理書籍你必須要看

本文主要是介紹三本管理的書籍&#xff0c;需要全部書籍的可以加Q群375508415去拿走。里面很多大神的PMP資料。 大家有沒有覺得項目經理有時像個政委&#xff0c;做員工思想工作&#xff1b; 有時像個HR&#xff0c;操心員工的穩定和發展&#xff1b; 有時像個咨詢顧問&#xf…

java 外部接口調用 設計模式_《Java設計模式》之接口模式

-----------模式是思想的體現&#xff0c;而非具體的實現。抽象的講&#xff0c;類的接口是類允許其他類對象訪問的方法與字段集。接口通常代表一種承諾&#xff0c;即方法需要實現接口方法名表示的操作&#xff0c;遵循代碼注釋和其他文檔說明&#xff0c;類的實現就是方法體中…

BFS(廣度優先搜索)

Catch That Cow Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer …

leetcode111. 二叉樹的最小深度(隊列)

給定一個二叉樹&#xff0c;找出其最小深度。最小深度是從根節點到最近葉子節點的最短路徑上的節點數量。說明: 葉子節點是指沒有子節點的節點。示例:給定二叉樹 [3,9,20,null,null,15,7],3/ \9 20/ \15 7 返回它的最小深度 2.代碼 /*** Definition for a binary tree no…

企業網站6個常見的優化漏洞

導讀&#xff1a;企業做營銷網站目的&#xff0c;就是希望通過網絡營銷&#xff0c;挖掘目標客戶。目標客戶怎么來&#xff0c;那就需要通過網站優化&#xff0c;把網站關鍵詞優化排名到首頁&#xff0c;這樣才能更多的機會被潛在客戶點擊。很多企業網站上線之前&#xff0c;沒…

aspx 微型_最初的十億分鐘:正在向世界授課的微型非營利組織背后的數字

aspx 微型by Quincy Larson昆西拉爾森(Quincy Larson) 最初的十億分鐘&#xff1a;正在向世界授課的微型非營利組織背后的數字 (The First Billion Minutes: The Numbers Behind the Tiny Nonprofit That’s Teaching the World to Code) People have now spent more than 1 b…

[RN] React Native 自定義導航欄隨滾動漸變

React Native 自定義導航欄隨滾動漸變 實現效果預覽&#xff1a; 代碼實現&#xff1a; 1、定義導航欄 NavPage.js import React, {Component} from react; import {View, Text, Image, StyleSheet, TouchableOpacity, Platform, Dimensions} from react-native;/*** 自定義導航…

【CSS 技能提升】 :before和:after的使用

前幾天的晚上較全面的去看了下css的一些文檔和資料&#xff0c;大部分的樣式運用都沒什么大問題了&#xff0c;只是有些許較陌生&#xff0c;但是也知道他們的存在和實現的是什么樣式。今天主要想在這篇學習筆記中寫的也不多&#xff0c;主要是針對:before和:after寫一些內容&a…

c語言模擬java面向對象_純c語言實現面向對象分析與示例分享

#include #include //接口#ifndef Interface#define Interface struct#endif//類#ifndef Class#define Class struct#endif//抽象形狀類Class Shape;typedef Class Shape shape;//抽象形狀類的方法聲明shape* Shape(int edges);int shape_getEdges(shape *);int shape_getArea(…

leetcode152. 乘積最大子數組

給你一個整數數組 nums &#xff0c;請你找出數組中乘積最大的連續子數組&#xff08;該子數組中至少包含一個數字&#xff09;&#xff0c;并返回該子數組所對應的乘積。 示例 1: 輸入: [2,3,-2,4] 輸出: 6 解釋: 子數組 [2,3] 有最大乘積 6。 代碼 class Solution {publi…

成功試驗基于C#/.NET的Android開發

今天最開心事情莫過于摸索驗證了一個事情&#xff0c;C#也能進行Android和IOS開發&#xff0c;白天安裝了開發環境&#xff0c;晚上進行測試&#xff0c;直到此時此刻&#xff0c;已經成功的導出一款基于C#/.NET的安卓APK&#xff0c;并且能夠成功的導入到安卓手機運行&#xf…

使用機器學習預測天氣_如何使用機器學習根據文章標題預測喜歡和分享

使用機器學習預測天氣by Flavio H. FreitasFlavio H.Freitas著 如何使用機器學習根據文章標題預測喜歡和分享 (How to predict likes and shares based on your article’s title using Machine Learning) Choosing a good title for an article is an important step in the …

深入理解了MySQL,你才能說熟悉數據庫

先拋出幾個問題 1.為什么不建議使用訂單號作為主鍵?2.為什么要在需要排序的字段上加索引?3.for update 的記錄不存在會導致鎖住全表?4.redolog 和 binlog 有什么區別?5.MySQL 如何回滾一條 sql ?6.char(50) 和 varchar(50) 效果是一樣的么?索引知識回顧 對于 MySQL 數據庫…

ibatis mysql 自增_mybatis自增主鍵

簡單介紹&#xff1a;在使用mybats插入數據是&#xff0c;有很多需要和id關聯的其他數據&#xff0c;所以在插入一條信息時獲取其主鍵信息是很常見的操作。一 mysql數據庫的主鍵自增(int類型的主鍵)1 創建一個表&#xff0c;設置表的id(此id必須是int類型)&#xff0c;設置為au…

DataGridView控件用法二:常用屬性

通常會設置的DataGridView的屬性如下&#xff1a; AllowUserToAddRows - False指示是否向用戶顯示用于添加行的選項&#xff0c;列標題下面的一行空行將消失。一般讓其消失。AllowUserToDeleteRows - False指示是否允許用戶從DataGridView刪除行。一般不允許。AllowUserToOrder…

leetcode面試題 16.21. 交換和(二分查找)

給定兩個整數數組&#xff0c;請交換一對數值&#xff08;每個數組中取一個數值&#xff09;&#xff0c;使得兩個數組所有元素的和相等。 返回一個數組&#xff0c;第一個元素是第一個數組中要交換的元素&#xff0c;第二個元素是第二個數組中要交換的元素。若有多個答案&…