删除集群所有节点上的最后一行 bashrc 文件

Deleting last line of bashrc file on all nodes of cluster

我有一个集群 24 nodes。我想删除所有节点

bashrc 文件的最后一行

这是我试过的:

for (( i=1; i<25; i++ ))    
do    
  ssh node$i "sed -i '$d' ~/.bashrc"    
done

我还尝试了以下变体

for (( i=1; i<25; i++ ))    
do    
  ssh node$i    
  sed -i '$d' ~/.bashrc    
  exit    
done

for (( i=1; i<25; i++ ))    
do    
  ssh node$i 'sed -i '$d' ~/.bashrc'    
done

但是 sed 命令的 $d 没有被 shell 正确解释。 相反,本地 bashrc 文件正在更新。 这样做的正确方法是什么?

试试这个:

for (( i=1; i<25; i++ ))    
do    
  ssh node$i "sed -i '$d' ~/.bashrc"    
done

你需要逃跑$。也希望你的node$i是正确的!