- 论坛徽章:
- 0
|
现有如下的文件,内容如下:
/home/sybase/bin/dataserver \
-d/home/sybase/data/master.dat \
-e/home/sybase/install/l1k_1.log \
-M/home/sybase \
-sl1k_1 \
现在想提取-e后面的文件的绝对路径,用如下的脚本
grep "^-e" $RUNFILE | grep -v grep | sed 's/^-e//;s/\\$//'
可以得到正确的结果,但如下把它附给一个变量,如下
LOGFILE=`grep "^-e" $RUNFILE | grep -v grep | sed 's/^-e//;s/\\$//'`
即把上面的命令加上``后,echo $LOGFILE的结果后面总有符号'\',跟踪结果如下:
+ grep ^-e /home/sybase//install/RUN_l1k_1
+ grep -v grep
+ sed s/^-e//;s/\\$//
/home/sybase/install/l1k_1.log
+ + grep ^-e /home/sybase//install/RUN_l1k_1
+ grep -v grep
+ sed s/^-e//;s/\$//
LOGFILE=/home/sybase/install/l1k_1.log \
+ echo /home/sybase/install/l1k_1.log \
/home/sybase/install/l1k_1.log \
为什么把命令的结果附给变量后,sed中的\\变成了\ |
|