我正在bash中工作,我正在努力获取用户的输入,然后将它们移动到一个函数中。我正在使用case语句来让它工作,这是我目前正在使用的代码:
read -n1 -p "Save to log? [y,n] " choice n
case $choice in
y|Y) echo yes ;;
n|N) echo no ;;
*) echo dont know ;;
esac
function saveToLog(){
echo Saving to log
}
我已经尝试了我认为会起作用的方法:
read -n1 -p "Save to log? [y,n] " choice n
case $choice in
y|Y) saveToLog() ;;
n|N) echo no ;;
*) echo dont know ;;
esac
function saveToLog(){
echo Saving to log
}
但是这不起作用,我已经做了一些谷歌搜索,我找不到使用case语句的解决方案,因为我想继续使用这个系统。
谢谢。:)
saveToLog
后面不需要()
:
#!/bin/bash
read -n1 -p "Save to log? [y,n] " choice n
case $choice in
y|Y) saveToLog ;;
n|N) echo "no" ;;
*) echo "dont know" ;;
esac
function saveToLog(){
echo "Saving to log"
}
callsaveToLog
ony|Y
注意:saveToLog
必须按原样声明(使用function
关键字)才能工作。有关function
和()
的更多信息,请查看这个Stackoverflow问题