2015-04-30 55 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和。