1. 程式人生 > >linux shell 指令碼需要互動,比如輸入回車,輸入YES/NO Y/N之類進行選擇

linux shell 指令碼需要互動,比如輸入回車,輸入YES/NO Y/N之類進行選擇

Linux中shell指令碼執行時經常需要進行互動,比如安裝軟體的過程中對license宣告的確認,需要輸入yes,回車之類的確認資訊。這個在自動化安裝的時候就會是個問題。

通常對於這個問題比較靈活的解決方法就是TCL的Expect。但Expect還需要另外安裝,平臺通用性不高,比較麻煩。

另外一些簡單的方法倒也是有,不過可用性不高,特別是對要求多次互動就吃力了。但怎麼說其還是能解決大多數的問題,因為複雜的情況還是比較少的。比如要一個呼叫一個安裝指令碼 : installWAS.sh, 這個指令碼要求輸入回車,則可以:echo | installWAS.sh;如果要求輸入yes|no,加回車,則可以echo yes|installWAS.sh. 這下自動化安裝就有希望了。

再有一下的程式碼也可以帶來一些思路:

[0 No.2015 [email protected] ~/tmp]$ cat foo
read -s -n1 -p "Press any key to continue ... "
echo "Your inputs: $REPLY"

[0 No.2016 [email protected] ~/tmp]$ ./foo < /dev/null
Your inputs:

[0 No.2017 [email protected] ~/tmp]$

相關推薦

linux shell 指令碼需要互動比如輸入回車輸入YES/NO Y/N之類進行選擇

Linux中shell指令碼執行時經常需要進行互動,比如安裝軟體的過程中對license宣告的確認,需要輸入yes,回車之類的確認資訊。這個在自動化安裝的時候就會是個問題。 通常對於這個問題比較靈活的解決方法就是TCL的Expect。但Expect還需要另外安裝,平臺通用

Linux shell指令碼 自動輸入提示資訊或回車進行下一步操作

1.應用場景 有的時候執行安裝或操作第三方軟體時,需要輸入Yes 或者回車 才能進行下一步 例如操作sqlite [[email protected] sh]# sqlite3 anhui.db SQLite version 3.6.20 Enter ".help" fo

一個很牛的 linux shell指令碼編寫的俄羅斯方塊遊戲例項程式碼非常牛逼

可以將下面程式碼直接儲存為sh檔案。 #!/bin/bash   # Tetris Game # 10.21.2003 xhchen< [email][email protected][/email]>   #APP declaration

Linux shell 指令碼新增環境變數監控web 服務是否正常

例項1:寫shell指令碼定義函式設定環境變數路徑 prepend() { [ -d “$2” ] && eval $1="$2${$1:+’:’$$1}" && export $1 } 執行 prepend PATH /opt/myapp/bin 說明:

Linuxshell指令碼程式設計例項--遍歷所有檔案並按月份打成zip包

原始檔案形式如下圖: 經過shell指令碼處理之後,按月生成的zip包如下圖: 完成上述工作的shell指令碼如下: #下面這行程式碼並不是註釋,它的作用是表名該指令碼使用哪個shell直譯器 #! /bin/sh #變數賦值,等號=兩邊不能有空格 #需要處理的檔案目錄

LinuxShell指令碼實現批量重新命名資料夾批量重新命名檔案(讓原本繁重的工作變得簡單)

最近接了個專案,具體做什麼都不說了,其中有個工作就是批量更改資料夾,然後批量更改資料夾下的檔名字,一會兒先貼程式碼,再詳細解釋步驟。 下面是我的簡化版的目錄結構,實際上有上百個。 project dir1 dir1.py dir2

java 呼叫 linux shell 指令碼並讀取返回值

String[] cmd = {"/bin/sh", "-c", "ps -elf | grep -v grep | grep EuropeStaticsEntrance | wc -l"}; while (true) { StringBuilder sb = ne

shell 指令碼程式設計學習(二) 變數使用者輸入引數

前面已經說過,shell 指令碼幾乎就是一組儲存下來的 shell 命令。掌握了格式和執行方法之後我們已經可以使用指令碼來幫助完成工作了。但相較於平時一行行地敲命令,指令碼還是有一些特別之處讓我們可以實現更強大的功能。 變數 在單行敲 shell 命令時我們

linux shell指令碼監控程序如果程序不在則重啟之

 #!/bin/sh while [ 1 ]  do      procID=`pidof ffmpeg`      if [ "" == "$procID" ];      then          ffmpeg -f video4linux2 -s 320x240

Linux Shell 指令碼程式設計(3)—Shell輸入與輸出

shell 輸入與輸出 提綱: echo read cat 管道 tee 檔案重定向

linux -- shell指令碼呼叫其他指令碼shell指令碼傳遞引數

Shell 指令碼也可以看做是一個一個的函式,將命令進行了封裝。 看看自己的例子: outTop.sh 是最頂層的。【負責呼叫其他的shell 指令碼】out1.sh 是第2層。【被outTop.sh呼叫】outInsert是第2層。【被outTop.sh呼叫】檔案 out

mysql -- 通過linux shell 指令碼匯出部分資料

1.構建我的shell 指令碼 (1)最初情況 下面這些語句還是有不少缺點的,從中可以看出來有大量的重複,應該想辦法簡化,嘗試去使用變數。簡化之後,達到的目的應該是最少的修改。 #!/bin/bash mysqldump -h172.24.64.179 -umisc -p1

Linux-Shell指令碼程式設計基礎(1)

1. 我們一般在使用Linux系統的時候,都活接觸到shell指令碼的使用,例如我們經常在linux系統中使用的ls命令、cd命令等,都是衣蛾簡單而又基本的shell命令,在 linux系統中我們一般的使用如下的格式來進行shell指令碼的編寫: (1)格式 #!bin/bash e

學習Linux shell指令碼中連線字串的方法

這篇文章主要介紹了Linux shell指令碼中連線字串的方法,如果想要在變數後面新增一個字元,可以用一下方法: 程式碼如下: $value1=home $value2=${value1}"=" echo $value2 把要新增的字串變數新增{},並且需要把$放到外面。 這樣輸出的結果

Linux Shell指令碼獲取當前路徑

shell指令碼獲取當前路徑 #方法一 #!/usr/bin/env bash Cur_Dir=$(pwd) echo $Cur_Dir #方法二 #!/usr/bin/env bash basedir=cd $(dirname $0); pwd

linux shell 指令碼【1】 ---- echo 與 printf 用法

終端列印的常用命令有 echo 和 printf 兩種。 先說基本用法: echo: 1. echo Hello Word ! 命令列輸出:Hello Word ! 2. echo 'Hello Word !' 命令列輸出:Hello Word ! 3. echo

linux shell 指令碼【3】 ---- 重定向 與 tee 命令

1.重定向: echo "ABCD"  > temp.txt 將ABCD寫入到temp.txt中 echo "ABCD" >> temp.txt 講ABCD追加到temp.txt中 其中  > 相當於 1>

linux shell 指令碼【2】 ---- 數學運算

在Bash shell環境中,可以利用 let、 (()) 、 [ ]、 expr 、  bc 進行數學運算 用法直接上程式碼,如下: #! /bin/bash echo "數學運算篇 START" #基本運算----let a=5; b=4; echo "a = $a

Linux Shell指令碼程式設計 --awk命令詳解

簡單使用: awk :對於檔案中一行行的獨處來執行操作 。 awk -F :'{print $1,$4}'   :使用‘:’來分割這一行,把這一行的第一第四個域打印出來 。    

Linux Shell 指令碼讀取配置檔案

一、應用場景 為了靈活應用shell指令碼,適當的加入配置檔案,對於後期的維護和優化會有很大幫助。例如指令碼中使用的檔案/檔案路徑,都可以通過讀取配置檔案完成。 配置檔案 filename=boomlee 指令碼檔案 #!/bin/bash workdir=$(cd $(di