通过echo 传输参数到shell 脚本中如何获取获取

需求:

        提供一个shell 脚本用于用户登录,入参为 用户名和密码,由于保密需要,密码必需通过echo 方式传递,不能接在脚本后面当入参。       

现在我们在模仿这个登录,设计思路是这样的:

    通过echo 传输密码,用户名没有保密要求,接在脚本后的入参中;

    在shell 脚本中设计两个逻辑:一是 用户名如果是admin 则默认不需要输入密码也能登录; 二是 其他用户则必需输入密码,否则提示并出错返回

    获取到满足要的求的用户名和密码后,将其保存到一个文本中。该动作通过调用python 完成

 

以下是test.sh的代码

 

以下是test.py的代码

 

关键点是test.sh 中接收echo 入参密码的地方:read -t 2 pwd

read 是用于读取输入流也就是echo 的数据的 -t 这个项是用于设置等待输入的超时时间 的,也就是等待2秒还没有接收到输入那就不再等待 。这个设置很重要:因为这个echo 的密码我并不是非输入不可的,对于admin 用户来说,我是不需要密码也能登录的,如果不设置一个超时,那么在不输入密码的情况下时,脚本将一直处于等待状态,脚本将无法执行下去。

执行 echo "test123456" | bash test.sh hlm

 

 

 

执行 bash test.sh admin

 

 

执行 bash test.sh hlm