close

雲端計算的作業剛好需要用到ubuntu

碰到了這個問題就研究了一陣子

 

假設我要執行的指令是以下的樣子:

make results

而執行後會程式會跳出很多次選項

必須要按Enter(預設值)或是yes/no或是數字要選

指令只打這樣的話,script跑的時候跑到這兒就會停住,等待下指令

 

這時可以用 << EOF 這個指令來解決

完整的方式是:

你要執行的指令 << EOF

選項答案

選項答案

...

EOF

 

例如使用我前面假設的指令並且要處理三次選項:

make result << EOF

yes

no

yes

EOF

 

EOF是End Of File

不過這裡可以把它當作一個上下括號來使用(就是包括 << EOF 跟選項最後要加上一個EOF才算這個區塊結束)

所以在寫script的時候,當某段程式在執行時還需要輸入選項時,就可以用這樣的方法讓他可以順利自動執行。

 

那要是我只想輸入Enter讓它直接選擇預設值呢?

那就直接在code那一行按enter讓它跳下一行

例如:

make result << EOF

 

no

yes

EOF

 

另外一個也剛好遇到的是安裝軟體時需要sudo

而sudo時會需要輸入密碼

這裡也可以用EOF這個方法處理

例如:

sudo -S apt-get install make << EOF
ubuntu
EOF

這裡我是要安裝'make',而中間的ubuntu則是user的密碼

sudo的參數 -S 是表示會從stdin(一般是指鍵盤)讀取密碼

這個方法的壞處是,密碼會暴露在script中,所以大概只能在作業中使用

 


不過這個方法有一個先決條件是,你知道接下來會有幾次選項,而且選項各要選擇什麼

arrow
arrow
    文章標籤
    shell script ubuntu 自動
    全站熱搜

    Cleaboy Jao 發表在 痞客邦 留言(0) 人氣()