将命令传递给函数
问题描述:
我在尝试将一些复杂命令作为参数传递给函数时遇到了问题。将命令传递给函数
function executeCmd(){
$1
returnVal=$?
if [[ $returnVal -eq 0 ]]; then
echo "Success"
else
echo "Failed"
fi
}
executeCmd "ssh [email protected]$IP "date && (ls | grep "something")""
我尝试了不同的引号,转义字符,但我失去了一些东西。 提前谢谢!
答
不要试图在状态函数中执行命令;只是调用下面的函数后,你打电话给你的命令:
status() {
if [[ $? == 0 ]]; then
echo "Success"
else
echo "Failure"
fi
}
例如:
ssh [email protected]$IP "date && (ls | grep \"something\")"; status
详情请参见I'm trying to put a command in a variable, but the complex cases always fail!。 (本质上,你试图把你的命令放在你的函数的第一个位置参数$1
中。)
+0
谢谢你的链接。它帮助我理解了一些事情。 –
放弃希望:这是疯狂的道路,(或者是对所有引用规则和角落案例的极端掌握。可以是全职工作)。 ;-)。祝你好运。 – shellter