Parallel processing 如何将列表传递到并行
我试图在下面的脚本中使用parallelParallel processing 如何将列表传递到并行,parallel-processing,gnu-parallel,Parallel Processing,Gnu Parallel,我试图在下面的脚本中使用parallel #!/bin/bash declare -a ephemeral_list for mount in $(lsblk | grep ^x | awk '{ print $1 }') do if ! mount | grep $mount >/dev/null; then ephemeral_list+=($mount) fi done for i in "${!ephemeral_list[@]}" do print
#!/bin/bash
declare -a ephemeral_list
for mount in $(lsblk | grep ^x | awk '{ print $1 }')
do
if ! mount | grep $mount >/dev/null; then
ephemeral_list+=($mount)
fi
done
for i in "${!ephemeral_list[@]}"
do
printf "%s\t%s\n" "$i" "${ephemeral_list[$i]}"
[ -d /mnt/ephemeral$i ] || mkdir /mnt/ephemeral$i
mkfs.ext4 -E nodiscard /dev/${ephemeral_list[$i]} && mount /dev/${ephemeral_list[$i]} /mnt/ephemeral$i &
done
我想在这里的每个cpu上运行“mkfs.ext4-E nodiscard/dev/${ephemeral_list[$I]}&&mount/dev/${ephemeral_list[$I]}/mnt/ephemeral$I&”命令
有什么帮助吗
谢谢制作一个函数。就这么说吧
mymkfs() {
printf "%s\t%s\n" "$1" "$2"
[ -d /mnt/ephemeral$1 ] || mkdir /mnt/ephemeral$1
mkfs.ext4 -E nodiscard /dev/"$2" && mount /dev/"$2" /mnt/ephemeral$1
}
export -f mymkfs
parallel mymkfs {#} {} ::: "${ephemeral_list[@]}"