雲端計算的作業剛好需要用到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中,所以大概只能在作業中使用
不過這個方法有一個先決條件是,你知道接下來會有幾次選項,而且選項各要選擇什麼
留言列表