2015-04-02 37 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 [$ i]} & &安裝使用並行/ dev/$ {ephemeral_list [$ i]}/mnt/ephemeral $ i &「每個cpu的命令在這裏

有幫助嗎?

謝謝

回答

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