带条件的 mkfs VIA ssh

带条件的 mkfs VIA ssh

我想在我的 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 脚本,将其复制到远程服务器,然后在那里执行它。

相关内容