我有一个功能:
function obtener_resumen(){
ssh root@${1} '
echo "grep -iE ${2} ${3}";
ifconfig;
' > "${4}"
}
我称之为:
obtener_resumen "MY_IP" "PATRON" "/MY_FILE.txt" "/demo.log"
当我打开demo.log时,我看到:
grep -iE
当我需要grep -iE PATRON /MY_FILE.txt
这可能吗?感谢您的帮助。
答案 0 :(得分:1)
您希望在客户端进行扩展,因此您可以在将值传递到ssh
之前使用双引号来扩展:
# Unsafe version
function obtener_resumen(){
ssh root@${1} "
echo \"grep -iE ${2} ${3}\";
ifconfig;
" > "${4}"
}
但是为了防止命令注入,请使用printf %q
:
#Safe version
function obtener_resumen(){
ssh root@${1} "$(printf "%q " echo grep -iE "$2" "$3"); ifconfig" > "$4"
}