From 62ceb5f36dfe831a2ac490d342dedbb4884b18cf Mon Sep 17 00:00:00 2001 From: samson Date: Wed, 21 Nov 2018 16:23:04 +0800 Subject: [PATCH] Modify basic function add_option_to_fstab --- lib/utils.sh | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/utils.sh b/lib/utils.sh index a003840..1dc0f6d 100644 --- a/lib/utils.sh +++ b/lib/utils.sh @@ -344,13 +344,17 @@ add_option_to_fstab() { # sed -ie "s;\(^[^#].*${PARTITION}\)\(\s.*\)\(\s\w.*\)\(\s[0-2]\s*[0-2]\);\1\2\3,${OPTION}\4;" /etc/fstab MOUNT_OPTION=$(grep -v "^#" /etc/fstab | awk '$2=="${PARTITION}" {print $4}') CURLINE=$(grep -v "^#" /etc/fstab -n | grep "/home" | awk -F: '{print $1}') + #This case is for option of starting with "no", example: nosuid noexec nodev + NOTNOOPTION=$(echo $OPTION | cut -c 3-) if [ "${MOUNT_OPTION}" == "defaults" ]; then NEWOP='rw,nosuid,nodev,noexec,auto,async' - sed -i "s${CURLINE}/$MOUNT_OPTION/$NEWOP/" - elif [ $(echo $MOUNT_OPTION | grep -w $(echo $OPTION | cut -c 3-) | wc -l) -gt 0 ]; then - - + sed -i "${CURLINE}s/$MOUNT_OPTION/$NEWOP/" /etc/fstab + #This case is for option of starting with "no", example: nosuid noexec nodev + elif [ $(echo $MOUNT_OPTION | grep -cw ${NOTNOOPTION}) -gt 0 ]; then + sed -i "${CURLINE}s/${NOTNOOPTION}/${OPTION}/" /etc/fstab + elif [ $(echo $MOUNT_OPTION | grep -cw $OPTION)) -eq 0 ]; then + sed -i "${CURLINE}s/${MOUNT_OPTION}/${MOUNT_OPTION},${OPTION}/" /etc/fstab fi }