免交互簡單操作

免交互

交互:我們發出指令控制程序的運行,程序在接收到指令后按照指令的效果作出對應的反應

免交互:間接的,通過第三方的方式把指令傳給程序,不用直接下達指令

Here Document免交互

這是命令行格式,也可以寫在腳本當中,通過l/O重定向的方式將命令的列表傳送給交互程序或者命令。

是標準輸出的一種替代品,代替了人工的輸入方式

語法格式

命令(linux的系統命令)<<標記

內容1

內容2

內容3

標記

wc -l <<xy102
> 123
> 456
> 789
> xy102
3

注意事項:
1、標記可以是任意合法字符(一般不用特殊字符,不以數字帶頭,通常以EOF作為默認的標記位)

2、結尾的標記一定要頂格寫,且前面不能有任何字符,空格也不行

3、結尾的標記后面也不能有空格

4、開頭的標記前后的空格都會被省略掉

文件插入 兩種方式 tee

[root@test1 opt]# cat <<EOF>>test1.txt
> 123
> 456
> 789
> EOF
[root@test1 opt]# cat test1.txt 
123
456
789
[root@test1 opt]# tee test2.txt <<EOF
> 1
> 2
> 3
> 4
> 5
> 6
> EOF
1
2
3
4
5
6
[root@test1 opt]# cat test2.txt 
1
2
3
4
5
6

引入變量

file="test1.sh"
i=school
cat >$file <<EOF
I am going to $i
EOF
sh 1.sh 
[root@test1 opt]# cat test1.sh 
I am going to school

整體變量賦值

 vim 2.sh var="Great! I am going to school"
myvar=$(cat <<EOF
this is monday
$var
EOF
)
echo $myvar
運行腳本
sh 2.sh 
this is monday Great! I am going to school

關閉免交互

 vim 2.sh var="Great! I am going to school"
myvar=$(cat <<'EOF'
this is monday
$var
EOF
)
echo $myvar
sh 2.sh 
this is monday $var

Expect實現免交互

用tcl語言寫的一個工具,主要用于自動化控制和測試,解決shell腳本交互的問題

rpm -q tcl expect

wh

轉義符

\n:換行

\r:回車

\t:相當于tab鍵

\b:表示退格,刪除

先安裝軟件

先賦權文件, ./才可以執行

./passed.sh

!/ure/bin/expect

聲明解釋器

set timeout 5

set設置timeout超時時間 默認是十秒設置超時時間五秒

set 也可以作為設置變量

spawn

后面需要執行的命令,開啟會話過程,并跟蹤后續的免交互信息

expect “新的密碼:”

捕獲需要執行的命令行,只要能夠捕獲即可,不需要完整的,可以用*代表所有

send “abc123\r”

輸入指令代碼

expect “重新輸入新的密碼:”

send “abc123\r”

結束語只能寫一個

expect eof

交互指令結束后,會退回原用戶,切換之前的用戶

interact

留在當前用戶

#!/usr/bin/expect# 設置超時時間為5秒
set timeout 5
# 執行更改用戶dn的密碼命令
spawn passwd dn
# 期待 "新的 密碼:" 提示
expect "新的 密碼:"
# 輸入新密碼(假設密碼是 "abc123")
send "abc123\r"
# 期待 "重新輸入新的 密碼:" 提示
expect "重新輸入新的 密碼:"
# 再次輸入新密碼
send "abc123\r"
# 期待命令結束
expect eof賦權
chmod 777 test1.sh 
執行./test1.sh 
spawn passwd dn
更改用戶 dn 的密碼 。
新的 密碼:
無效的密碼: 密碼少于 7 個字符
重新輸入新的 密碼:
passwd:所有的身份驗證令牌已經成功更新

切換用戶

設置超時時間

sed_user “ok”

sed_user = echo 打印指定內容

在這里插入圖片描述

#!/usr/bin/expect
set timeout 5#設置超時時間
set username [lindex $argv 0]
set password [lindex $argv 1]
將用戶和密碼分別賦給這兩個變量
spawn su - $username
expect "密碼"
send "$password\r"
expect "~]$"
send_user "ok"
expect eof對文件進行賦權
chmod 777 su.sh 
[root@test1 opt]# su test1
[test1@test1 opt]$ ./su.sh dn abc123
spawn su - dn
密碼:
[dn@test1 ~]$ ok[test1@test1 opt]$ 

嵌入執行模式

在shell當中加入expect,涉及到環境切換的場景不建議使用嵌套模式

ssh su不適合使用嵌入模式

在這里插入圖片描述

#!/bin/bash
user=$1
password=$2
useradd $user
/usr/bin/expect <<EOF
spawn passwd $user
expect "新的"
send "password\r"
expect "重新"
send "password\r"
expect eof
EOFsh qiantao.sh mmm 123
spawn passwd mmm
更改用戶 mmm 的密碼 。
新的 密碼:
無效的密碼: 密碼未通過字典檢查 - 它基于字典單詞
重新輸入新的 密碼:
passwd:所有的身份驗證令牌已經成功更新。

ssh免密登錄

連接固定主機

1、設置變量

在這里插入圖片描述

連接主機

在這里插入圖片描述

免交互實現硬盤分區

分完區

第一步要格式化

第二步實現掛載,手動掛載

在分區創建文件 寫入“學習真好” 打印結果

簡單的操作流程

#!/bin/bash/usr/bin/expect <<EOF
#設置分區
spawn fdisk /dev/sdd
expect "輸入 m 獲取幫助"
send "n\r"
expect "(default p): "
send "\r"
expect "(1-4,默認 1):"
send "\r"
expect "(2048-41943039,默認為 2048):" 
send "\r"
expect "(2048-41943039,默認為 41943039):" 
send "\r"
expect "輸入 m 獲取幫助"
send "w\r"expect eof
EOF
#刷新
partprobe
#創建文件系統
mkfs.xfs -f /dev/sdd1
#創建目錄
mkdir /opt/test4
#設置掛載點
mount /dev/sdd1 /opt/test4
echo "學習真好" > /opt/test4/test2.txt
cat /opt/test4/test2.txt

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/38277.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/38277.shtml
英文地址,請注明出處:http://en.pswp.cn/web/38277.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

不用找了!這個軟件自帶各行業話術,客服效率飛躍

有一款客服工具軟件&#xff0c;不但能吸附聊天窗口&#xff0c;實現圖文視頻話術的一鍵發送&#xff0c;還內置了多行業的優質客服話術模板&#xff0c;允許用戶直接下載使用&#xff0c;快速構建起適合自身企業的專業客服知識庫。 前言 在今天的快節奏商業環境中&#xff0c…

Linux shell腳本編程

一、sehll簡介&#xff1a; 用戶通過shell向計算機發送指令的 計算機通過shell給用戶返回指令的執行結果 1.1、通過shell編程可以達到的效果 提高工作的效率 可以實現自動化 1.2、sehll腳本編寫的流程 1、用vi/vim創建一個.sh的文件 2、在文件中進行開發 3、個文件賦予可執行權…

CesiumJS【Basic】- #047 繪制閃爍線(Entity方式)- 需要自定義著色器

文章目錄 繪制閃爍線(Entity方式)- 需要自定義著色器1 目標2 代碼2.1 main.ts繪制閃爍線(Entity方式)- 需要自定義著色器 1 目標 使用Entity方式繪制閃爍線 2 代碼 2.1 main.ts import * as Cesium from cesium;const viewer = new Cesium<

【如何使用RSA簽名驗簽】python語言

文章目錄 簽名方法異步同步通知數據驗簽生活號響應數據驗簽同步響應數據驗簽 &#x1f308;你好呀&#xff01;我是 山頂風景獨好 &#x1f388;歡迎踏入我的博客世界&#xff0c;能與您在此邂逅&#xff0c;真是緣分使然&#xff01;&#x1f60a; &#x1f338;愿您在此停留的…

作業7.2

用結構體數組以及函數完成: 錄入你要增加的幾個學生&#xff0c;之后輸出所有的學生信息 刪除你要刪除的第幾個學生&#xff0c;并打印所有的學生信息 修改你要修改的第幾個學生&#xff0c;并打印所有的學生信息 查找你要查找的第幾個學生&#xff0c;并打印該的學生信息 1 /*…

idea常用問題記錄

文章目錄 1.ant構建報錯編譯錯誤1.1 解決辦法 1.ant構建報錯編譯錯誤 Compile failed;xxx 1.1 解決辦法

Python系統教程02

鞏固 input()輸出函數 回顧 1 、 input()函數&#xff1a; 在 input()函數輸入時&#xff0c;輸入的內容一定為字符串類型。 2 、條件分支語句&#xff1a; 每一個 if 語句可以看成一個個體&#xff0c;elif 和 else 都是一個 if 個體的一部分&#xff0c;每一個 if 個體 運…

51單片機外部中斷(按鍵識別)

歡迎入群共同學習交流 時間記錄&#xff1a;2024/7/2 一、電路原理圖 51單片機包含INT0、INT1兩個外部中斷接口 二、知識點介紹 1.中斷寄存器位介紹 &#xff08;1&#xff09;TCON定時控制寄存器&#xff0c;位0&#xff08;IT0&#xff09;中斷INT0請求信號選擇位&#x…

WordPress主題開發進群付費主題v1.1.2 多種引流方式

全新前端UI界面&#xff0c;多種前端交互特效讓頁面不再單調&#xff0c;進群頁面群成員數&#xff0c;群成員頭像名稱&#xff0c;每次刷新頁面隨機更新不重復&#xff0c;最下面評論和點贊也是如此隨機刷新不重復 進群頁面簡介&#xff0c;群聊名稱&#xff0c;群內展示&…

注意!年齡越大,社交圈子越窄?其實這是老人的理性選擇!數學家告訴你:何時該跳槽,何時該堅守!你必須知道的三個智慧:讓你的人生更加精彩!

我們到底應該在什么情況下探索新事物&#xff0c;什么情況下專注于已有的東西呢&#xff1f;本質上來說&#xff0c;這個問題就是在詢問&#xff0c;你究竟應該耗費精力去探索新的信息&#xff0c;還是專注從既有的信息中獲取收獲&#xff1f; 有人采訪了臨終的老人&#xff0c…

中國三大平原矢量示意圖分享

我們在《中國地勢三級階梯示意圖分享》、《中國四大高原矢量示意圖分享》和《中國主要山脈矢量示意圖分享》等文中&#xff0c;為你分享過中國地勢相關的矢量示意圖。 現在再為你分享一下我國東北平原、華北平原和長江中下游平原的矢量示意圖&#xff0c;這三大平原均位于我國…

隨想錄總結 Day 77

隨想錄總結 Day 77 回憶75天的做題時間&#xff0c;差點沒堅持下來的有兩個時間點&#xff0c;一個是在前20天&#xff0c;很多時候二叉樹這種基礎題&#xff0c;前中后序列遍歷之類的。基礎&#xff0c;但真正寫一遍&#xff0c;每道題又有多種寫法。花了很長時間但是也就是一…

go sync包(七)Sync.Map

Sync.Map 原理 通過 read 和 dirty 兩個字段實現數據的讀寫分離&#xff0c;讀的數據存在只讀字段 read 上&#xff0c;將最新寫入的數據存在 dirty 字段上。讀取時會先查詢 read&#xff0c;不存在再查詢 dirty&#xff0c;寫入時則只寫入 dirty。讀取 read 并不需要加鎖&am…

每天一個數據分析題(三百九十九)- 邏輯回歸

邏輯回歸中&#xff0c;若選0.5作為閾值區分正負樣本&#xff0c;其決策平面是&#xff08; &#xff09; A. wxb&#xff1d; 0 B. wxb&#xff1d; 1 C. wxb&#xff1d; -1 D. wxb&#xff1d; 2 數據分析認證考試介紹&#xff1a;點擊進入 題目來源于CDA模擬題庫 點…

Python實現萬花筒效果:創造炫目的動態圖案

文章目錄 引言準備工作前置條件 代碼實現與解析導入必要的庫初始化Pygame定義繪制萬花筒圖案的函數主循環 完整代碼 引言 萬花筒效果通過反射和旋轉圖案創造出美麗的對稱圖案。在這篇博客中&#xff0c;我們將使用Python來實現一個動態的萬花筒效果。通過利用Pygame庫&#xf…

大數據可視化實驗(八):大數據可視化綜合實訓

目錄 一、實驗目的... 1 二、實驗環境... 1 三、實驗內容... 1 1&#xff09;Python縱向柱狀圖實訓... 1 2&#xff09;Python水平柱狀圖實訓... 3 3&#xff09;Python多數據并列柱狀圖實訓.. 3 4&#xff09;Python折線圖實訓... 4 5&#xff09;Python直方圖實訓...…

PAT 1108 Finding Average

原題鏈接&#xff1a;PAT 1108 Finding Average The basic task is simple: given N real numbers, you are supposed to calculate their average. But what makes it complicated is that some of the input numbers might not be legal. A legal input is a real number in…

Python只讀取Excel文件的一部分數據,比如特定范圍的行和列?

如何只讀取Excel文件的一部分數據&#xff0c;比如特定范圍的行和列&#xff1f; 在Python中&#xff0c;如果你只想讀取Excel文件的特定范圍&#xff0c;可以使用以下方法&#xff1a; pandas: Pandas是一個強大的數據處理庫&#xff0c;它有一個內置函數read_excel()用于讀…

在不修改.gitignore的情況下,忽略個人文件的提交

Git提供了一個assume-unchanged命令&#xff0c;可以將文件標記為“假設未更改”。這意味著Git將忽略該文件的更改&#xff0c;不會將其提交到倉庫中。要使用該命令&#xff0c;只需運行以下命令&#xff1a; git update-index --assume-unchanged <file>其中&#xff0…

邊緣網關帶來的效益探討-天拓四方

邊緣網關作為連接物理世界與數字世界的橋梁&#xff0c;在智能制造、智慧城市等各個領域中發揮著關鍵作用。通過收集、處理來自各種傳感器和設備的數據&#xff0c;邊緣網關為實時決策、優化生產流程以及提高運營效率提供了強有力的支持。下面我們將探討邊緣網關帶來的效益。 …