簡體   English   中英

如何在下面的交互腳本中設置變量非交互模式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM