shell指令碼程式設計-變數初值處理、expect互動
變數的初值:字串初值設定:
語法結構:
$//如果未定義變數的值,預設輸出word
//如果定義了變數的值,輸出定義好的變數值
例項:建立乙個指令碼,實現,互動式的建立使用者和密碼,
如果使用者未設定密碼,則預設密碼是123456
#!/bin/bash
read -p "請輸入使用者名稱:" user
read -p "請輸入密碼:" pass
id -u $user
[ $? -eq 0 ] && exit
[ $uid -ne 0 ] && exit
[ -z $user ] && exit
!!! pass=$
useradd use
rech
o"
user echo "
userec
ho"pass"| passwd --stdin $user
傳遞多行值給命令:
#命令 << eof
sdfjh應用場景是發郵件。mailkakjsddn
aslkkn
eof
#mail -s test root << eof
tset mailexpect預期互動:hello word
eof
for i in `cat ipaddress.txt`
do ssh $i
mkdir /abc
yum -y install mysgl
exit
done
ssh 49.233.65.157
ssh :
第一次登陸會讓你輸入是否接受公鑰
第二次登陸會直接輸入密碼
1.需要安裝expect 工具
#yum -y install expect
#which expect
2.實現免互動登入:
#vim expect.sh
#!/bin/bash
ssh 49.233.65.157
expect << eof
spawn ssh 49.233.65.157 //建立乙個互動式程序
expect "password" //自動傳送密碼
expect "#" //傳送命令
expect "#"
eof#!/bin/bash
for i in `seq 10`
do expect << eof
spawn ssh 49.233.75. 86
expect password:"
expect "#"
expect "#"
eof
done
ssh 不希望出現yes/no的情況
ssh -o stricthostkeychecking=no ip位址
#who am i //檢視誰連你
Shell指令碼程式設計 變數
1 變數定義的方法 name value name中的規則同c語言,value可以是任何值,如果包含空格,則應該使用 引起來。2 訪問變數 varname 3 定義陣列變數 name index value 這裡的index可以為n,不用從0開始賦值,如我只定義 name 3 value,則name...
shell指令碼(變數)
1 定義及賦值 格式 變數名 變數值 等號兩邊沒有空格 2 引用 檢視 變數 格式 變數名 例 title shaodianlingxing echo title 輸出 shaodianlingxing 3 雙引號 功能 允許引用 轉義 例如 echo title group 輸出 shaodian...
shell指令碼 變數
1 shell 指令碼中變數分為三種,區域性變數,環境變數,shell變數。區域性變數 定義在函式內部 基本型別 local num hello world 區域性變數在指令碼或命令中定義,僅在當前shell例項中有效,其他shell啟動的程式不能訪問區域性變數。如果同名,shell函式定義的loc...