shell指令碼程式設計 變數初值處理 expect互動

2021-10-03 20:25:10 字數 1604 閱讀 8465

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

kakjsddn

aslkkn

eof

應用場景是發郵件。mail

#mail -s test root << eof

tset mail

hello word

eof

expect預期互動:

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...