2012-04-15 21 views
0

我真的新bash的腳本,需要一些幫助,一個奇怪的問題。目錄和字符串我的bash腳本

這裏是我的代碼行:

#!/bin/ash -x 
echo Variabel \$1='\t'$1 
TARGET_DIR=/volume1/video/Transcoded/ 
echo "Variabel\$TARGET_DIR=$TARGET_DIR" 
fbname=$(basename "$1") 
echo Variabel \$fbname=$fbname 
out="${fbname}""${TARGET_DIR}" 
echo $out 
read -p "Press [Enter] key to start next Transcode..." 

此輸出:

Variabel $1=\t/volume1/video/Movies/Thor (2011)/Thor (2011).mkv 
Variabel$TARGET_DIR=/volume1/video/Transcoded/ 
Variabel $fbname=Thor (2011).mkv 
/volume1/video/Transcoded/ 
Press [Enter] key to start next Transcode... 
在最後的一個echo $出shoulde是路徑和文件名組合

..但它是壞了。 什麼可能是錯誤的?

感謝您前面回答:)

+1

'ash'不是'bash',而不是這似乎是相關的,到目前爲止你已經使用了什麼。 – geekosaur 2012-04-15 08:54:48

+0

你是正確的,它是在一個Synology,它已經buid客棧灰... – MadMonkeyMan 2012-04-15 15:43:29

+0

任何人都有一個ide? – MadMonkeyMan 2012-04-15 15:51:36

回答

1

它看起來對我來說,無論是$ 1或一些腳本結束的以回車(有時寫\ R)的線 - 這個角色通常是不可見的,但會造成怪異的行爲和輸出。舉例來說,如果我們開始與TARGET_DIR = 「/ VOLUME1 /視頻/轉碼/」 和fbname = $ '雷神(2011)的.mkv \ R'(注:$ '...' 是轉義序列的字符串bash的符號像解釋\ r)的,那麼你會風與出= $ '雷神(2011)的.mkv \ R/VOLUME1 /視頻/轉碼/',當你echo $out,它打印:

Thor (2011).mkv 
/volume1/video/Transcoded/ 

。 ..第二個「行」打印在第一個頂部,所以你永遠不會看到第一個部分。

流浪回車通常是使用DOS/Windows文本編輯器的結果 - 不要將它們用於unix文本文件(包括腳本)。要刪除它們,請參閱前面的問題herehere

BTW,我第二@ shellter的有關爲什麼文件名是路徑之前混亂......

+0

妳正確的..我用納米來代替,一切正常:謝謝 – MadMonkeyMan 2012-04-16 20:38:49

1

試試這個:

out="${fbname}${TARGET_DIR}" 
echo $out 
+0

你好感謝你的答案.. 輸出是一樣的...... – MadMonkeyMan 2012-04-15 09:00:45