2013-02-28 101 views
0

我試圖連接兩個變量在csh腳本如何加入變量在csh腳本

這裏是腳本的一部分

#!/bin/csh -f 

set encname = _11111k_1920x1080_x264_5200_quicktime_128.mp4 

set lowerisrc = `echo $isrc | tr "[:upper:]" "[:lower:]"` 

echo "$lowerisrc$encname" 

此輸出:

_11111k_1920x1080_x264_5200_quicktime_128.mp4 

的lowerisrc變量應該是一個值,例如「ggttgttgg」

看起來好像lowerisrc變量不是re被認定爲使用較低函數的字符串

如何獲得以下結果作爲輸出?

ggttgttgg_11111k_1920x1080_x264_5200_quicktime_128.mp4 
+1

當然我無法抗拒鏈接到[這裏](HTTP://www.faqs .ORG /常見問題/ UNIX的常見問題/殼/ CSH-whynot /)。 – 2013-02-28 19:50:42

回答

1

雙引號不像那樣嵌套。更改設置lowerisrc到行:

set lowerisrc = "`echo $isrc | tr '[:upper:]' '[:lower:]'`" 

以您目前的代碼,該行:

set lowerisrc = "`echo $isrc | tr "[:upper:]" "[:lower:]"`" 

包含3個雙引號字符串:

"`echo $isrc | tr " 
" " 
"`" 

[:upper:][:lower:]是可能會通過shell作爲文件匹配模式進行擴展。

更新:現在你已經改變了你的問題的代碼。我剛剛嘗試過您的修改代碼(添加了一行以設置$isrc的值),並且它正常工作,這使問題變得毫無意義。

下面是一個完整的腳本,爲我的作品:

#!/bin/csh -f 

set isrc = GGttGttGG 
set encname = _11111k_1920x1080_x264_5200_quicktime_128.mp4 
set lowerisrc = "`echo $isrc | tr '[:upper:]' '[:lower:]'`" 
echo "$lowerisrc$encname" 

輸出是:

ggttgttgg_11111k_1920x1080_x264_5200_quicktime_128.mp4 
+0

這給了我相同的輸出結果。 – user1526912 2013-02-28 19:44:03

+0

我正在嘗試不同的上部較低功能的組合。我用原始值編輯了問題。 – user1526912 2013-02-28 19:46:06

+0

@ user1526912:如果您更改了問題中的代碼,則一致回答非常困難。 – 2013-02-28 19:48:52