2012-11-26 163 views
0

我對c-shell編程相對來說比較新,而且我對tr命令有問題。當我執行腳本時,我收到的錯誤信息是「找不到tr命令」。我也試圖顯示我已經分配給變量的foreach循環中的文件內容。這實際上只會打印文件路徑的名稱或其內容?這裏是我的代碼:Linux的tr命令

#! /bin/csh 

set path = /home/students/fall2012/crn12143/ford/friend_list 

foreach i ($path) 
echo $i | tr '[a-z]' '[A-Z]' 
end 
+2

別代碼的腳本。 http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/ –

+1

將只打印文件的名稱。使用'cat $ i''一次一個地打印文件。祝你好運。 – shellter

+0

@shellter我想通了!那完美地顯示了文件的內容,謝謝 – demet8

回答

2

你打破了路徑,所以它不能再找到tr。既然你是不是真的用path像它應該被使用,你應該考慮的變量重命名爲別的

set path=(/home/students/fall2012/crn12143/ford/friend_list $path) 

:更改一樣的路徑。

如果你想仍然去除大部分的路徑,使用的tr命令的完整路徑:

echo $i | /path/to/tr '[a-z]' '[A-Z]' 
+0

是小寫路徑和大寫路徑相同? –

+0

@ shiplu.mokadd.im,這是一個很好的問題。我有兩個在我的.cshrc,所以我只是在這裏粘貼他們。我不確定有什麼區別。我需要記住評論這些變化,所以我記得我爲什麼要這樣做。 – gpojd

+0

@ shiplu.mokadd.im Unix路徑區分大小寫。 –

1

您正在重新定義PATH環境不受變量,這是不好的。

你應該使用不同的變量名稱,如:在`csh`

set folder = /home/students/fall2012/crn12143/ford/friend_list 
+0

我真的很感激幫助,我將路徑變量重命名爲文件夾,並且我將腳本從小寫轉換爲大寫。我如何提取此文件夾的內容並使用foreach將它們打印到屏幕上? – demet8