簡體   English   中英

csh shell腳本疑難解答

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM