您的位置:首页 > 运维架构 > Shell

重定向、管道和 echo 命令(二)

2018-09-29 00:52 302 查看

        我们在之前学习了 shell 的基础,今天我们就来学习下 shell 中的重定向、管道和 echo 命令

        我们看到第一次查找的时候只有 grep mysql 进程存在,在第二次查找的时候一个也没有。grep -v grep 便是将我们进行查找的进程删除掉

        下来我们来讲讲 echo 命令。众所周知,echo 是用来打印的。可是它的一些高级操作,你知道吗?接下来我们就来讲讲这个神秘的 echo。

        格式:echo [选项][字符,变量....]

            选项: -n 不换行输出,echo 默认是输出一次换一行; -e 增强,启用转移字符解析:\a 响铃、 \b 退格、 \c 去除尾部的新行、 \n 新的一行、 \r 回车、 \t 水平制表符、 \\ 斜杠、 \0NN 八进制、 \0xHH 十六进制输出。

        举例:echo -e "welcom to \t new world \n shell \\ programming",我们来看看效果

        我们看到在第一个 \t 的时候出现了指标符,在 \n 的时候出现了换行符,\\ 是斜杠。

        下来看看怎么输出有颜色的字符。前景色:十位数的 3 表示,范围:30-37(3x 表示);背景色:十位数的 4 表示,范围:40-47(4x 表示);个位数表示色彩:30(黑色)、31(红色)、32(绿色)、33(×××)、34(蓝色)、35(洋红)、36(青色)、37(白色)。

        举例:echo -e "Network restarting... [\033[32;40m OK \033[0m]",效果如下图所示

        下来我们来看看一个 echo 的实际应用。写一个脚本:提示用户输入一个密码,并把密码进行 base64 或 md5 加密,然后将加密后的密码保存到 /home/aston/test/a.txt 文件中。

        步骤:1、提示输入密码;2、读取密码;3、对密码进行加密;4、重定向输入到文件;5、查看密码

        1、提示输入密码

#!/bin/bash

echo "Please input a password:"

        我们来看看效果

        我们先来改变它的可执行权限,再来执行。已经实现了上面的第一步。

        2、读取密码

#!/bin/bash

echo "Please input a password:"
read PASS
echo "your passwd is: $PASS"

        我们来看看结果

        已经实现了读取密码的功能。

        3、对密码进行加密

#!/bin/bash

echo "Please input a password:"
read PASS
PASS=$(echo $PASS | openssl base64)
echo "your passwd is: $PASS"

        我们来看看效果

        我们看到密码已经实现加密了。

        4、重定向输入到文件;5、查看密码。

#!/bin/bash

echo "Please input a password:"
read PASS
echo $PASS | openssl base64 > /home/aston/test/a.txt

        我们来看看效果

        那么我们肯定不希望在输入密码的时候被别人看到,所以我们得做个处理

!/bin/bash

echo "Please input a password:"
echo -n -e "\033[30;40m"
read PASS
echo -e "\033[0m"
echo $PASS | openssl base64 > /home/aston/test/a.txt

        我们将其背景色设置为黑色,来看看效果

        我们看到在输入密码时其背景为黑色,密码还是加密的。此时我们已经学习了 shell 中的管道和 echo 命令,在以后的开发中会更加的方便。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  shell 管道 重定向