gpt4 book ai didi

linux - 将参数传递给远程 SSH

转载 作者:太空宇宙 更新时间:2023-11-04 10:39:45 25 4
gpt4 key购买 nike

我有一个函数:

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

这可能吗?感谢您的帮助。

最佳答案

您希望扩展发生在客户端,因此您可以在将值传递给 ssh 之前使用双引号对其进行扩展:

# Unsafe version
function obtener_resumen(){
ssh root@${1} "
echo \"grep -iE ${2} ${3}\";
ifconfig;
" > "${4}"
}

但是为了防止命令注入(inject),使用printf %q:

#Safe version
function obtener_resumen(){
ssh root@${1} "$(printf "%q " echo grep -iE "$2" "$3"); ifconfig" > "$4"
}

关于linux - 将参数传递给远程 SSH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35657875/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com