当前位置 博文首页 > 用shell命令读取与输出数据的代码

    用shell命令读取与输出数据的代码

    作者:admin 时间:2021-02-12 15:06

    shell脚本读取数据有以下几种方式:
    1.键盘输入,默认
    2.从文件中读取
    3.通过管道命令传递

    echo的功能:
    \c :不换行
    \f :进纸
    \t :跳格
    \n :换行
    \表示转义,例如:"\"/dev/rmt0"\"翻译为,"/dev/rmt0"

    read:从键盘或文件的某一行文本中读取信息,并将其赋给一个变量。

    复制代码 代码如下:

    [jb51]/>read name
    hello i am a regular user
    [jb51]/>echo $name
    hello i am a regular user
    [jb51]/>

    cat:作用,1.显示文件内容,2.创建文件,3.显示控制字符。
    1.显示文件内容
    cat filename | more
    cat filename | pg
    2.创建文件
    cat > filename
    3.显示控制字符
    cat -v filename

    管道:可以通过管道,将一个命令的输出传递给另一个命令做为输入。
    形式:命令1 | 命令2
    例如:

    复制代码 代码如下:

    [jb51]/usr/xxxx/ytcclb>who | awk '{print $1"\t"$2}'
    xxxx ttyp0
    xxxx ttyp1
    xxxx ttyp2
    ...
    xxxx ttyp55
    [jb51]/usr/xxxx/ytcclb>df -k | awk '{print $1}' | grep -v "Filesystem"
    /dev/root
    /dev/boot
    [jb51]/usr/xxxx/ytcclb>df -k | awk '{print $1}'| grep -v "Filesystem"|sed s'/\/dev\///g'
    root
    boot
    [jb51]/usr/xxxx/ytcclb>

    tee命令
    作用:把输出的一个副本输送到标准输出,另一个副本拷贝到相应的文件中。
    tee -a file
    -a:追加到文件末尾。
    [jb51]/usr/xxxx/ytcclb>who | tee who.out
    将who命令查找到的数据保存到who.out文件中。

    文件重定向:
    command > filename 把标准输出重定向到一个新文件中
    command >> filename 把标准输出重定向到一个文件中(追加)
    command 1 > fielname 把标准输出重定向到一个文件中
    command > filename 2>&1 把标准输出和标准错误一起重定向到一个文件中
    command 2 > filename 把标准错误重定向到一个文件中
    command 2 >> filename 把标准输出重定向到一个文件中(追加)
    command >> filename 2>&1 把标准输出和标准错误一起重定向到一个文件中(追加)
    command < filename >filename2 把command命令以filename文件作为标准输入,
    以filename2文件作为标准输出
    command < filename 把command命令以filename文件作为标准输入
    command << delimiter 把从标准输入中读入,直至遇到delimiter分界符
    command <&m 把文件描述符m作为标准输入
    command >&m 把标准输出重定向到文件描述符m中
    command <&- 把关闭标准输入

    重定向标准输出
    1.将很多命令的输出追加到一个文件中

    复制代码 代码如下:

    ls -l | grep ^d >>files.out
    ls account* >> files.out

    [jb51]/usr/xxxx/ytcclb>ls -l null.txt
    -rw-r--r-- 1 xxxx group 3 Nov 15 16:07 null.txt
    [jb51]/usr/xxxx/ytcclb>chmod u +x null.txt
    chmod: WARNING: cannot access +x: No such file or directory (error 2)

    u与+x之间有空格!

    复制代码 代码如下:

    [jb51]/usr/xxxx/ytcclb>chmod u+x null.txt
    [jb51]/usr/xxxx/ytcclb>ls -l null.txt
    -rwxr--r-- 1 xxxx group 3 Nov 15 16:07 null.txt

    js
    下一篇:没有了