![](/img/trans.png)
[英]How to understand and avoid non-interactive mode errors when running ispell from script?
[英]how to set variable non-interactive mode in below interactive script
#!/bin/bash
lockfile="/opt/puppetlabs/puppet/cache/state/agent_disabled.lock"
set -x
set -e
user=$(w -h | awk '{print $1}')
dateNow=$(date '+%F')
dateDefault=$(date '+%F' --date="next-day")
IFS= read -r -p "Enter short message why are you disbaling agent: " comment
IFS= read -r -p "Enter date(yyyy-mm-dd) till agent will be disabled: " dateExpiry
if [[ -z "${dateExpiry}" ]]; then
printf '%s\n' "No Date entered - Default date set next day"
dateExpiry="$dateDefault"
fi
if [[ -z "${comment}" ]]; then
printf '%s\n' "No input entered - Disabling message is not set"
exit 1
else
puppet agent --disable "$user:$dateExpiry:$comment"
if [ -f "$lockfile" ]; then
echo "puppet agent is disabled"
fi
fi
在上面的腳本中,如何在執行腳本設置變量(注釋和日期過期)時使非交互成為一個線性命令。
謝謝 !
期望上面的腳本是非交互式的,並在執行腳本時設置變量。
添加超時
IFS= read -t 3 -r -p "Enter short message why are you disbaling agent: " comment
或類似這樣的默認值
if ! IFS= read -t 3 -r -p "Enter short message why are you disbaling agent: " comment
then
comment='Default'
fi
在不更改腳本的情況下,如果您想提供值,請執行此操作
script.sh <<!
My comment
2023-01-04
!
所以腳本可以讀取它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.