[英]csh shell script troubleshooting
我有以下csh shell腳本,這給了我錯誤,但我不太確定為什么。 它實際上表示找不到ls和cp命令
#!/bin/csh
clear
set path="~/SCRAT_SIMs/V6.0/bin/linux/"
echo "Pushing files to: $path"
ls packages/
cp -r packages/acte_asym $path
cp -r packages/acte_hq/ $path
當我擺脫設置的路徑,那么它似乎工作。 有任何想法嗎?
在csh和tcsh中, $path
shell變量和$PATH
環境變量綁定在一起。 $PATH
(不僅適用於外殼,還適用於所有內容)是由:
字符分隔的目錄名稱列表。 $path
是一個csh數組變量,它鏡像$PATH
的內容。
對於您的情況,您只需要選擇一個不同的變量名即可。
如果您實際上要操縱執行路徑,通常應該保留$path
的現有內容,並在開頭或結尾添加新目錄。 例如:
set path = ( ~/bin $path:q )
如果$PATH
某些目錄包含空格之類的有趣字符,則:q
后綴可避免出現問題。 注意:請勿在此處使用雙引號:
set path = ( ~/bin "$path" )
這樣會將$path
的全部內容擴展為帶有嵌入式空格的單個字符串; $path:q
將其保留為數組。
強制性鏈接 。 (我以前自己寫過csh腳本,但我發現sh和bash對於編程要好得多,盡管tcsh在交互使用方面仍然有一些優勢。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.