2015-04-02 4 views
1

Я пытаюсь использовать параллельно в следующем скриптекак передать список параллельно

#!/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 

Я хочу, чтобы запустить «mkfs.ext4 -E nodiscard/DEV/$ {ephemeral_list [$ я]} & & монтирования/dev/$ {ephemeral_list [$ i]}/mnt/ephemeral $ i & "команда на каждый процессор здесь

любая помощь?

спасибо

ответ

1

Сделайте функцию. Назовите это.

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[@]}"