一、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