shell实现交互

一、SHELL

1.1 输入单个指令

自动输入yes

echo “y” | yum install wget ,等同于yum -y install wget

自动输入回车

echo -e “\n” | yum remove wget

echo -e 的小知识

若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:\a 发出警告声;\b 删除前一个字符;\c 最后不加上换行符号;\f 换行但光标仍旧停留在原来的位置;\v 与\f 相同;\n 换行且光标移至行首;\r 光标移至行首,但不换行;\t 插入 tab 符号;\ 插入 ‘’ 字符;\nnn 插入 nnn(八进制)所代表的 ASCII 字符;

1.2 输入多行指令

输入多行指令我们需要借助输入重定向操作符 <<

以下面这个脚本为例

multi.sh

#!/bin/bash
 
read -p "enter number:" no
read -p "enter name:" name
echo "you have entered $no, $name"

借助 << 符号进行自动化输入

#!/bin/bash
sh multi.sh << EOF
1
mutoe
EOF

但是有时候这种方法并不生效,比如 ssh-keygen 命令,那只有借助强大的 expect 命令了

read -p "you are sure you wang to xxxxxx?[y/n]" input
echo $input
if [ $input = "y" ];then
    echo "ok "
fi

限制输入内容的个数
我们还可以使用 read命令的-n 选项,此选项后面需要接一个数字,可以限制输入内容的个数。

#!/bin/bash
read -p "May I ask your name: " name
echo "Hello $name"
read -n1 -p "Press any key to exit"
echo
exit 0

控制输入内容的可见性
目前,我们输入的内容都是可见的,但有些敏感的数据,如密码,信用卡号等信息,输入时并不想可见。那么可以使用read -s。
在这里插入图片描述
这时再输入时,就有一个钥匙的标识,而且输入时不可见。

参考:https://blog.csdn.net/weixin_42319496/article/details/119369810

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值