在初始化腳本中,我想用另一個用戶調用另一個腳本(本例中爲tomcat中的catalina.sh)並傳遞其他參數。在初始化腳本中使用參數bash su
我已經試過這樣的事情:
if [ $USER == "root" ]
then
CMD="/bin/su ${TOMCAT_USER} -c"
fi
$CMD $CATALINA_HOME/bin/catalina.sh stop 20 -force
然而,這未能按「停止」,其它參數都被視爲一個單獨的文件,而不是作爲一個參數傳遞給腳本和文件顯然別不存在。我試圖通過使用「$(printf())」來構建必要的命令來解決此問題,但一直未能找到工作解決方案。任何想法,我可以傳遞額外的參數到該腳本?
編輯:
提供的情況下,更多的背景下,當前用戶已經是必需的用戶。這是一個醜陋的解決方法,這似乎解決了這個問題:
if [ $USER == "root" ]
then
CMD="/bin/su ${TOMCAT_USER} -c '"
PST="'"
elif [ $USER == "${TOMCAT_USER}" ]
then
CMD=''
PST=''
else
exit 1
fi
bash -c "$CMD$CATALINA_HOME/bin/catalina.sh stop 20 -force$PST"
我們需要看到catalina.sh – suspectus
@suspectus [catalina.sh(https://svn.apache.org/repos/asf/tomcat/trunk/bin/catalina.sh) –