在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

shell腳本基礎:重定向和管道符

FPGA學姐 ? 來源:FPGA學姐 ? 2023-05-04 11:09 ? 次閱讀

重定向符

一、輸出重定向

標準輸出的目標位置通常指向的是終端屏幕。可以使用>符號修改標準輸出的目標位置。比如下面的示例就會將ps命令的輸出重定向到result.txt文件。描述符和>之間不能有空格

$ ps > result.txt  ←----- 由于已經重定向到 result.txt 文件,所以屏幕上不會輸出任何內容
$ cat result.txt
  PID TTY          TIME CMD
10745 pts/0    0000 bash
10873 pts/0    0000 ps

如果文件已經存在,則該文件會被覆蓋,文件內容將丟失

如果不想使用>覆蓋原文件,而想向原文件追加寫入,可以使用>>重定向

$ echo line1 >> echo.txt
$ echo line2 >> echo.txt
$ echo line3 >> echo.txt
$ cat echo.txt
line1
line2
line3

重定向并不是命令的功能,而是shell的功能,只要命令能將執行結果輸出到標準輸出,就可以實現重定向。但是只有標準輸出會被重定向,標準錯誤輸出還是會直接顯示到屏幕上,那么如何將錯誤輸出重定向?

可以使用2>符號,數字2是稱為文件描述符的編號

$ ls /xxx 2> error.txt
$ cat error.txt
ls: 無法訪問'/xxx': 沒有那個文件或目錄

0edc28de-e633-11ed-ab56-dac502259ad0.png

也就是說例子1中相當于是1>

或者2>>指令對錯誤進行重定向

$ ls /xxx 2>> error.txt
$ cd /xxx 2>> error.txt
$ cat error.txt
ls: 無法訪問 '/xxx': 沒有那個文件或目錄
-bash:cd:/xxx:沒有那個文件或目錄

標準輸出和標準錯誤輸出重定向到同一個文件(n>&m的含義是將文件描述符n設置為文件描述符m的副本)

$ ls /usr /xxx > ls_result.txt 2>&1

輸出到不同文件(將ls命令的標準輸出重定向到result.txt文件,并將標準錯誤輸出重定向到error.txt文件)

$ ls /usr /xxx > result.txt 2> error.txt

使用分組命令重定向(如果想在使用{ }時將多條命令寫到一行,需要在每條命令后面加上;)

#!/bin/bash
{
    date +%Y-%m-%d
    echo '/usr list'
    ls /usr
} > result.txt
#------------------------------------------------------------
$ { date +%Y-%m-%d; echo '/usr list'; ls /usr; } > result.txt

分組命令的{后面要有空格,還可以使用( )代替{ }

二、輸入重定向

$ tr b B
abcd←-----從鍵盤輸ru
aBcd     ←----- b 被替換為 B
my book  ←----- 從鍵盤輸入
my Book  ←----- b 被替換為 B

tr命令對鍵盤輸入的東西進行替換吧

$ cat word.txt
abcd                 ←----- word.txt 文件的內容
my book
$trbB

管道

命令的輸出內容除了可以重定向輸出到文件,還可以作為其他命令的輸入使用。

使用less命令顯示ls命令的標準輸出內容

$ ls | less
...            <-----(本行及以下5行)less 命令輸出示例
Documents      
Movies         
Music          
Public         
(END)

等效于

$ ls > result.txt
$ less < result.txt

注意:管道只會將前一條命令的標準輸出傳遞給之后的命令,而第1條命令的標準錯誤輸出則不會傳遞給后面的命令。

$ ls /usr/bin | grep 'py' | wc -l
6

如果使用管道來連接一個同時顯示標準輸出和標準錯誤輸出的命令,那么屏幕上將只顯示標準錯誤輸出的內容。如果想將標準錯誤輸出和標準輸出一起傳遞給后面的命令,那么使用前面介紹的2>&1這種重定向方式即可

$ ls /usr /xxx 2>&1 | less
ls: 無法訪問'/xxx': 沒有那個文件或目錄

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 文件
    +關注

    關注

    1

    文章

    570

    瀏覽量

    24822
  • 命令
    +關注

    關注

    5

    文章

    696

    瀏覽量

    22112
  • Shell
    +關注

    關注

    1

    文章

    366

    瀏覽量

    23448
  • 腳本
    +關注

    關注

    1

    文章

    392

    瀏覽量

    14938
  • Shell腳本
    +關注

    關注

    0

    文章

    36

    瀏覽量

    8023

原文標題:shell腳本基礎(四)重定向和管道符

文章出處:【微信號:FPGA學姐,微信公眾號:FPGA學姐】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    shell腳本進階】幾個常用的shell進階腳本

    shell腳本進階】幾個常用的shell進階腳本
    的頭像 發表于 09-19 08:59 ?1966次閱讀
    【<b class='flag-5'>shell</b><b class='flag-5'>腳本</b>進階】幾個常用的<b class='flag-5'>shell</b>進階<b class='flag-5'>腳本</b>

    飛凌嵌入式ElfBoard ELF 1板卡-shell腳本編寫之輸入輸出重定向

    shell輸出重定向通常是指將執行命令的輸出信息從默認的標準輸出(即當前終端)重新定向到指定文件中。輸入重定向通常是指將命令所需的輸入數據的來源,從標準輸入(即當前終端)更改為從指定文
    發表于 09-23 10:23

    嵌入式 學習-飛凌嵌入式ElfBoard ELF 1板卡-shell腳本編寫之輸入輸出重定向

    shell腳本編寫之輸入輸出重定向shell輸出重定向通常是指將執行命令的輸出信息從默認的標準輸出(即當前終端)重新
    發表于 09-24 10:06

    shell核心知識常見符號和流程控制:13.1 重定向 管道符

    Shell
    充八萬
    發布于 :2023年07月12日 11:18:39

    Linux后臺程序重定向的問題

    目前有一種方法是在程序后臺啟動的時候,直接重定向到某個shell或telnet。方法如下:如tty命令查看目標shell為 /dev/pts/0./yourapp & > /dev
    發表于 08-22 13:54

    linux shell數據重定向(輸入重定向與輸出重定向)詳細分析

    使用實例介紹這些默認的輸出,輸入都是linux系統內定的,我們在使用過程中,有時候并不希望執行結果輸出到屏幕。我想輸出到文件或其它設備。這個時候我們就需要進行輸出重定向了。linux shell下常用
    發表于 03-02 13:59

    Linux Shell系列教程之(十六) Shell輸入輸出重定向

      一、Shell輸入輸出重定向概述  在了解重定向相關知識之前,我們先來看看Linux的文件描述符。  Linux的文件描述符可以理解為linux跟蹤打開文件,而分配的一個數字,這個數字有點類似c
    發表于 09-12 15:53

    shell腳本最簡明的教程

    Shell腳本,就是利用Shell的命令解釋的功能,對一個純文本的文件進行解析,然后執行這些功能,也可以說Shell腳本就是一系列命令的集合
    的頭像 發表于 10-16 11:27 ?4888次閱讀
    <b class='flag-5'>shell</b><b class='flag-5'>腳本</b>最簡明的教程

    管道符重定向與環境變量

    1.標準輸入重定向(STDIN,文件描述符為0):默認從鍵盤輸入,也可從其他文件或命令中輸入。 3.錯誤輸出重定向(STDERR,文件描述符為2):默認輸出到屏幕。 表2 輸出重定向中用到的符號及其
    發表于 04-29 08:48 ?642次閱讀

    Keil下使用STlink重定向printf的配置

    Keil下使用STlink重定向printf的配置1. printf 重定向Keil默認下使用Micro LIB庫,該庫調用 fputs 實現 printf,所以需要重新定義fputs函數,以重定向
    發表于 12-27 18:43 ?18次下載
    Keil下使用STlink<b class='flag-5'>重定向</b>printf的配置

    109個實用shell腳本分享

    Shell腳本,就是利用Shell的命令解釋的功能,對一個純文本的文件進行解析,然后執行這些功能,也可以說Shell腳本就是一系列命令的集合
    的頭像 發表于 03-16 08:58 ?2685次閱讀

    shell腳本基礎知識

    shell腳本是一個文件,里面存放的是特定格式的指令,系統可以使用腳本解析器翻譯或解析指令并執行(無需編譯),shell腳本的本質是
    的頭像 發表于 04-17 15:00 ?1133次閱讀

    Linux I/O重定向詳解

    Linux I/O重定向可以定義為,更改從命令讀取輸入到命令發送輸出的方式。你可以重定向命令的輸入和輸出。對于重定向符號,可以是 或者 | 。
    的頭像 發表于 05-04 14:34 ?876次閱讀

    Linux Shell腳本經典案例分享

    ? 作為一名 Linux 運維工程師,會寫好的腳本不僅能提高工作效率,還能有更多的時間做自己的事。最近在網上沖浪的時候,發現大家對Shell腳本都有“心結”,要么覺得自己寫出來不好看,要么根本無從下手。 下面分享249個真實
    發表于 06-16 14:03 ?680次閱讀
    Linux <b class='flag-5'>Shell</b><b class='flag-5'>腳本</b>經典案例分享

    linux知識中常用到的管道符號有哪些

    作為一個高級linux運維人員所要知道的,為什么要少用管道符?并不是說方便就可以大量使用,我們需要考慮到其執行的速度及效率,下面一起通過實例看看管道符要少用的原因!
    發表于 09-29 07:00 ?2224次閱讀
    主站蜘蛛池模板: 欧美亚洲综合另类成人 | 久久99久久精品免费思思6 | 色妇网| 偷窥自拍亚洲色图 | 欧美一级视频在线 | 黄色的视频网站 | 久久精品亚洲精品国产欧美 | 97人人做人人爱 | 久视频在线观看久视频 | 国产在线观看黄 | 色天使久久 | 88av免费观看 | 色综合天天综合网亚洲影院 | a一级| 日本高清免费aaaaa大片视频 | 午夜影院18 | 丁香六月激情婷婷 | 一级特黄aaa大片在线观看 | 国产无套视频在线观看香蕉 | 一级午夜 | 五月天婷婷免费观看视频在线 | 伊人久久大杳蕉综合大象 | 成人午夜免费视频毛片 | 天天干天天弄 | 妖精视频一区二区三区 | 欧美人与动欧交视频 | 天天插天天干天天射 | 人人干狠狠干 | 最新理论三级中文在线观看 | 免费网站看av片 | 一级黄色录像毛片 | 真人实干一级毛片aa免费 | 国产精品 视频一区 二区三区 | 久久精品国产精品亚洲精品 | αv天堂 | 国内精品久久久久影院男同志 | 99久久久免费精品免费 | 亚洲一区二区三区免费看 | 手机看片福利日韩 | 特黄色一级毛片 | 欧美成人午夜片一一在线观看 |