当我尝试将一些复杂的命令作为参数传递给函数时,我遇到了麻烦。
function executeCmd(){
$1
returnVal=$?
if [[ $returnVal -eq 0 ]]; then
echo "Success"
else
echo "Failed"
fi
}
executeCmd "ssh $USER@$IP "date && (ls | grep "something")""
我试过不同的语录,逃避字符,但我错过了一些东西。 提前谢谢!
答案 0 :(得分:2)
不要尝试在状态函数中执行命令;只需在调用命令后调用以下函数:
status () {
if [[ $? == 0 ]]; then
echo "Success"
else
echo "Failure"
fi
}
例如:
ssh $USER@$IP "date && (ls | grep \"something\")"; status
有关详细信息,请参阅I'm trying to put a command in a variable, but the complex cases always fail!。 (实际上,您试图将命令放在函数的第一个位置参数$1
中。)