2017-01-03 201 views
0

好吧,我正在運行的功能,這是我收到的輸出:sed的:|:沒有這樣的文件或目錄

sed: |: No such file or directory 

四倍。

下面是sed命令的功能運行:

sed -i "/${1} {/,/}/d" "$7" 
sed -i "s/^${3}/${3}\n\n ${1} {\n path \/system\/lib\/soundfx\/boutique\/${4}\n }/g" "$7" 
sed -i "/${8} {/,/}/d" "$7" 
sed -i "s/^${6}/${6}\n\n ${8} {\n library ${1}\n uuid ${5}\n }/g" "$7" 

相信變量沒有被正確執行,谷歌搜索和stackoverflowing我加了雙引號和括號,但即使如此,也無法解決該問題後。

輸入到函數實例:

function $DOLSO "$SYSTEM/etc/$AEC" $DOLBYLIBTXT $FILE $DOLBYUUID $DOLBYEFFTXT "$ETC/$AEC" $DOLSO2 

變量在上述輸入用於:

DOLBYLIBTXT="# Dolby Laboratories, Inc. | www.dolby.com | Library" 
DOLBYEFFTXT="# Dolby Laboratories, Inc. | www.dolby.com | Effect" 
DOLBYUUID=9d4921da-8225-4f29-aefa-39537a04bcaa 
DOLSO=ds 
DOLSO2=dsplus 
FILE=libdseffect.so 
SYSTEM=/system 
ETC=$SYS/etc 

SYS=/system/system/system(取決於裝置)

AEC=audio_effects.conf 

我必須添加的sed命令無變量地工作,例如:

sed -i '/ds {/,/}/d' /system/etc/audio_effects.conf 

回答

4

我有一個相當不錯的預感,你需要在引用你的函數中引用其他參數。

function "$DOLSO" "$SYSTEM/etc/$AEC" "$DOLBYLIBTXT" "$FILE" "$DOLBYUUID" "$DOLBYEFFTXT" "$ETC/$AEC" "$DOLSO2" 

如果你不說出來了這個樣子,那麼你有效地運行

function ds "/system/etc/audio_effects.conf" # Dolby Laboratories, Inc. | www.dolby.com | Library libdseffect.so 9d4921da-8225-4f29-aefa-39537a04bcaa # Dolby Laboratories, Inc. | www.dolby.com | Effect "/system/etc/audio_effects.conf" dsplus 

,如果你製表參數的函數接收:

$1: ds 
$2: /system/etc/audio_effects.conf 
$3: # 
$4: Dolby 
$5: Laboratories, 
$6: Inc. 
$7: | 
$8: www.dolby.com 

等。引用您對「$ DOLBYLIBTXT」等的使用可以解決這個問題。

+0

你先生配得上讚不絕口,可惜我不能給你一個:( –

相關問題