我正在尝试在 bash 脚本中使用 sshpass 将命令运行到另一个 linux 服务器。
kernel_ipv4=1.2.3.4
vmpassword=dfbvndfbnpdp
sshpass -p "$vmpassword" ssh -o "StrictHostKeyChecking=no" root@$kernel_ipv4 'apt update && apt upgrade -y && \
apt-get install build-essential libncurses-dev bison flex libssl-dev libelf-dev -y && \
wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-$kernel_version.tar.xz && \
unxz -v /root/linux-$kernel_version.tar.xz && \
tar xvf /root/linux-$kernel_version.tar && \
cp -v /boot/config-$(uname -r) /root/linux-${kernel_version}/.config'
这里的问题是,当我将所有命令放在单引号中时;然后不传递变量 ${kernel_version} 的值。当我将所有命令放在双引号中时;然后(uname -r)
取当前服务器的值。