2011-06-28 101 views
0

我有一個腳本文件,該文件是與SED具有替換文本variabables

************************************************** 
case $arg in 

-start) 

**./$PRODUCT_BIN -d $PRODUCT_SUBDIR/config [email protected]** 

if test $? -ne 0 ; then 

exit 1 

fi 

;; 

-version) 

./$PRODUCT_BIN -d $PRODUCT_SUBDIR/config -i -v [email protected] 

if test $? -ne 0 ; then 

exit 1 

fi 

;; 

-configtest) 

./$PRODUCT_BIN -d $PRODUCT_SUBDIR/config -i -c [email protected] 

if test $? -ne 0 ; then 

echo 'failure: configuration test failed' 

exit 1 

fi 

echo 'success: configuration was parsed successfully' 

;; 

-shell) 

/bin/sh 

;; 

*) 

echo "Usage: start [-start|-shell|-version|-configtest]" 

exit 1 

;; 

********************************************** 

我期待以取代

"./$PRODUCT_BIN -d $PRODUCT_SUBDIR/config [email protected]" 

"newtask -p $Project_Name ./$PRODUCT_BIN -d $PRODUCT_SUBDIR/config [email protected]" 

我厭倦了使用SED但它不允許接受可比的數據。 youplease可以幫助我在這裏我通過搭配所有種類的東西而失去了我的大腦...

在此先感謝。

回答

0

希望此行:

./$PRODUCT_BIN -d $PRODUCT_SUBDIR/config [email protected] 

看起來像這樣:

newtask -p $Project_Name ./$PRODUCT_BIN -d $PRODUCT_SUBDIR/config [email protected] 

對嗎?然後:

只需使用單引號(')包裹的命令和管道(|)作爲分隔符:

sed -i.bak 's|./$PRODUCT_BIN -d $PRODUCT_SUBDIR/config [email protected]|newtask -p $Project_Name ./$PRODUCT_BIN -d $PRODUCT_SUBDIR/config [email protected]|' scriptfile 
+0

我想你說的bash-3.00 $ sed的-i。 bak's | ./$ PRODUCT_BIN -d $ PRODUCT_SUBDIR/config $ @ | newtask -p $ Project_Name ./$PRODUCT_BIN -d $ PRODUCT_SUBDIR/config $ @ |' start1 sed:非法選項-i – ashok

+0

如果在您的情況下無法正常工作,您可以忽略「-i.bak」部分。 – ssapkota

+0

是的,它的工作非常感謝 – ashok