我想在我的 bash 脚本中通过 ssh 在远程机器上创建文件系统
disk=sdg
以下行来自我的 bash 脚本
ssh $IP " [[ ` lsblk -f | grep $disk | awk '{print NF}' ` -eq 1 ]] &&
mkfs.ext4 -j -m 0 /dev/$disk -F "
bash: -c: line 0: conditional binary operator expected
bash: -c: line 0: syntax error near `1'
bash: -c: line 0: ` [[ -eq 1 ]] && mkfs.ext4 -j -m 0 /dev/ -F '
如果未在磁盘上创建文件系统,则以下语法将返回 1
lsblk -f | grep $x | awk '{print NF}'
所以我只想执行 VIA ssh 案例,如果文件系统未创建,那么我将执行 mkfs
是否可以?
答案1
我认为您在这里遇到了 shell 扩展问题。我猜想子命令(在反引号中)是在本地执行的,而不是在远程系统上执行的。
我建议在本地创建 bash 脚本,将其复制到远程服务器,然后在那里执行它。