我编写了这个脚本来从集群计算机的节点获取数据:
...
for machine in ${machines}
do
echo "compressing data from: " ${machine}
oarsh ${machine} "tar -zcf data_${machine}.tar.gz /tmp/data" &
done
Run Code Online (Sandbox Code Playgroud)
我运行了脚本,当我回来时我得到了这个:
Run Code Online (Sandbox Code Playgroud)compressing data from: machine1 ... compressing data from: machineN me@chinqchint-30:~$ tar: Removing leading `/' from member names tar: Removing leading `/' from member names tar: Removing leading `/' from member names tar: Removing leading `/' from member names tar: Removing leading `/' from member names ...
而且我没有收到提示。
我使用第二个终端登录,可以看到所有.tar.gz文件都已创建,但我很担心,因为我没有拿回命令行的控制权。我可以简单地终止脚本吗?
您可以在命令之间添加双 && 以强制第二个命令等待第一个命令。
例如,
tar -zcf data_${machine}.tar.gz /tmp/data && echo "DONE"
Run Code Online (Sandbox Code Playgroud)
另外,您可能不应该在后台运行 tar 命令 (&)