我有如下一個shell腳本...shell腳本,如何根據選擇運行不同的代碼?
#!/bin/ksh
set_logging() {
if [ -f "$LOG_FILE" ]
then
mv $LOG_FILE $LOG_FILE.$SYNCDATE
else
touch $LOG_FILE
fi
# set logging for stdout and stderr (run this if user selects start)
exec >> $LOG_FILE
exec 2>&1
# run this if user selects dry
#exec something else
#exec something else
}
set_logging
# menu
if [[ ! -n $1 ]] ; then
clear
echo ""
echo "What are you trying to do?"
echo "start"
echo "dry"
echo "help"
echo ""
exit 99
fi
case "$1" in
start) run_tar;;
dry) nothing_here_yet;;
help) print_help;;
*) clear
echo "Your syntax is incorrect!"; exit 99;;
esac
這是一個剪斷實際的腳本,在AIX 7.1 UNIX操作系統上運行。
我想要做的是基於菜單上的用戶選擇,更改set_logging()塊內執行的部分(如果用戶選擇不同的菜單選項,您會注意到我註釋了要運行的代碼以幫助這個例子)。
再次,這是一個簡單的例子,所以我理解並可以在我的shell腳本的不同部分使用它。
任何人都可以提供幫助嗎?
你已經知道該怎麼做基於不同的事情一個變量的值。您可以在該代碼段的底部使用它。只需將其應用於'set_logging'內。您還需要將'「$ 1」'傳遞給函數。 – 2014-09-19 02:51:48
@EtanReisner我認爲這就是他期待的答案,你可以在 – Ram 2014-09-19 03:57:27