2015-04-30 54 views
-1

我寫了一個小腳本,不幸的是,當將完整路徑作爲字符串傳遞給grep函數時,它添加了一個新的裝載點,它獲取的是整個字符串的輸入,只有一小部分它。 這裏是腳本的相關部分:Bash - grep問題

DIR_TO_CREATE="/ODV" 
MOUNT_POINT="ta1bbn01:/SwDrop/Repository/ODV $DIR_TO_CREATE nfs rw,hard,async,noatime,nodiratime,intr,bg,tcp,   vers=3,rsize=32768,wsize=32768,timeo=4" 
FSTAB="/etc/fstab" 
isFileContainString() { 
result=`grep -Fxc "$2" "$1"` 
if [ "$result" -eq 1 ]; then 
echo "fstab already contain this mountpoint" 
else 
echo "doesn't contain" 
fi 
} 
#MAIN 
isFileContainString $FSTAB $MOUNT_POINT 
+2

您的描述不清楚 - 運行腳本的輸出/結果是什麼? – KevinDTimm

+0

它總是返回0,這是不正確的,我在調試模式下運行腳本,似乎grep的評估只獲得字符串的一部分 – user3502786

+0

爲什麼一個grep問題的例子需要包含超過一個單一的東西調用grep的行?在這裏理解你的問題比它所需要的要難得多。 –

回答

3

行情!

isFileContainString "$FSTAB" "$MOUNT_POINT" 

否則,$2只得到的$MOUNT_POINT第一個字;隨後的話進入$3和。