Maison  >  Article  >  Opération et maintenance  >  Comment résoudre le problème de redirection sous Linux

Comment résoudre le problème de redirection sous Linux

PHPz
PHPzavant
2023-05-17 14:37:141724parcourir

    1. Présentation

    (1) Liste des commandes de redirection

    Commande Description
    fichier de commande Redirection la sortie dans le fichier
    commande < ; fichier redirige l'entrée vers le fichier
    commande >> fichier redirige la sortie vers le fichier en ajoutant
    n > fichier définit le descripteur de fichier sur n Le fichier est redirigé vers le fichier
    n >> fichier redirigera le fichier avec le descripteur de fichier n vers le fichier
    n >& m affichera le fichier m et n fusionner
    n 4cf788f3fe35575e1efa644c155895cc>

    (2) Exemple d'analyse

    [root@localhost ~]# w
     20:41:36 up 55 days,  5:17,  1 user,  load average: 0.00, 0.01, 0.05
    USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
    root     pts/0    223.166.20.53    20:24    0.00s  0.05s  0.00s w
    [root@localshost ~]# w > users #w命令执行后的结果输出到users文件中
    [root@localshost ~]# ll
    -rw-r--r-- 1 root root  204 Jan  3 20:41 users
    [root@localshost ~]# cat users #查看users文件内容,正是w命令执行后的输出结果
     20:41:58 up 55 days,  5:17,  1 user,  load average: 0.00, 0.01, 0.05
    USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
    root     pts/0    223.166.20.53    20:24    6.00s  0.05s  0.00s w
    [root@localshost ~]# who
    root     pts/0        2021-01-03 20:24 (223.166.20.53)
    [root@localshost ~]# who > users #将who命令执行结果输出重定向到users文件
    [root@localshost ~]# cat users #发现users文件中原先w命令的输出内容被who命令覆盖了
    root     pts/0        2021-01-03 20:24 (223.166.20.53)
    [root@localshost ~]# echo "Hello world" >> users #使用>>操作符则会追加在后面输出
    [root@localshost ~]# cat users
    root     pts/0        2021-01-03 20:24 (223.166.20.53)
    Hello world
    [root@localshost ~]#

    Remarque :

    Dans l'exemple ci-dessus, de nombreuses lignes de commande apparaissent avec deux # :

    • Le premier # signifie L'utilisateur actuel est l'utilisateur root (quand il est Pour les autres utilisateurs, il y aura le symbole $);

    • Le deuxième # ci-dessus signifie commentaire.

    3. Redirection d'entrée

    1. Analyse des commandes

    Les commandes Unix peuvent également obtenir des entrées à partir de fichiers. La redirection d'entrée est le signe inférieur à (58c0d18387bb79d4a5c352345b1068c5 file redirige stdout vers file, command <

    2. Détails de la commande

    command < infile > outfile
    #同时替换输入和输出,执行command,从文件infile读取内容,然后将输出写入到outfile中。
    #理解成,从标准输入中获取内容(输入重定向到infile)作为标准输出(输出重定向到outfile)。

    5. Here DocumentHere Document est une méthode de redirection spéciale dans Shell, utilisée pour rediriger les entrées vers un script ou un programme Shell interactif.

    1. Grammaire

    Sa forme de base est la suivante :

    command 2>file
    #stderr 重定向到 file
    command 2>>file
    #stderr 追加到 file 文件末尾
    
    command > file 2>&1
    command >> file 2>&1
    #stdout 和 stderr 合并后重定向到 file
    
    command < file1 >file2
    #对 stdin 和 stdout 都重定向
    #command 命令将 stdin 重定向到 file1,将 stdout 重定向到 file2

    Remarque : Le délimiteur à la fin de

    doit être écrit au format haut. Il ne peut y avoir de caractères devant et il ne peut y avoir de caractères à l'intérieur. le dos, y compris les espaces et les retraits de tabulation.

    Les espaces avant et après le délimiteur initial seront ignorés. 2. Exemple d'analyse

    EOF est l'abréviation de END Of File, qui signifie un terminateur personnalisé. Puisqu'il peut être personnalisé, EOF n'a pas de valeur fixe et vous pouvez définir un alias à volonté. Par exemple, sous Linux, appuyer sur Ctrl-D peut être utilisé comme EOF à la place.

    EOF fonctionne généralement avec cat pour générer du texte sur plusieurs lignes.

    L'exemple est le suivant :

    command << delimiter
        document
    delimiter
    #作用是将两个 delimiter 之间的内容(document) 作为输入传递给 command。

    EOF peut également être personnalisé comme suit :

    [root@localhost ~]# wc -l << EOF
    > a
    > b
    > c
    > d
    > e
    > EOF
    5 #输入内容为5行
    [root@localhost ~]# cat << EOF
    > a
    > b
    > c
    > d
    > e
    > f
    > EOF
    a
    b
    c
    d
    e
    f

    Lors de l'exécution de la saisie du script, vous pouvez utiliser le formulaire suivant :

    [root@iZ2ze95cxr3kx9il409khtZ ~]# cat << CCC
    > a
    > b
    > c
    > d
    > CCC
    a
    b
    c
    d

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Déclaration:
    Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer
    Article précédent:Comment configurer Linux raid0Article suivant:Comment configurer Linux raid0