字符串初值設置:
當你什麼都沒有輸入的情況下,還有一個默認值。
語法結構:
${var:-word}
//如果未定義變量的值,默認輸出word
//如果定義了變量的值,輸出定義好的變量值
實例:
創建一個腳本,實現交互式的創建用戶和密碼,
如果用戶未設置密碼,則默認密碼是123456
#!/bin/bash
read -p "請輸入用戶名:" user
read -p "請輸入密碼:" pass
pass=${pass:-123456}
useradd $user
echo "$pass" | passwd --stdin $user
傳遞多行值給命令:
# 命令 << EOF
>sdfjh
>kakjsddn
>aslkkn
>EOF
應用場景是發郵件。mail
#mail -s test root << EOF
>test mail
>hello world
>EOF
expect預期交互:
for i in `cat ipaddress.txt`
do
ssh $i
mkdir /abc
yum -y install mysql
exit
done
ssh:
第一次登錄會讓你輸入是否接受公鑰
第二次登錄直接輸入密碼
1.需要安裝expect工具:
#yum -y install expect
2.實現免交互登錄:
#vim expect.txt
#!/bin/bash
for i in seq 10
do
expect <<EOF
spawn ssh 賬號.KaTeX parse error: Can't use function '\r' in math mode at position 51: …ord" { send "密碼\̲r̲" } //自動發送密碼
…USER.txt \r" } //發送命令
expect “#” { send “exit \r” }
EOF
done
ssh 不希望出現yes /no
ssh -o StrictHostKeyChecking-no IP地址