簡體   English   中英

在循環linux中創建變量 - 權限被拒絕

[英]Creating variable in loop linux - permission denied

我試圖運行這個簡單的腳本,我在其中循環一個目錄中的一系列文件,並希望創建一個帶有'cut'的變量,以提取文件名稱的一部分。 我得到一個權限被拒絕錯誤,無法弄清楚原因。 下面是我的腳本。

FILES=./data/*

for f in $FILES
do
    NEWNAME=$($f|cut -c3-12)
    echo $NEWNAME
done

最終目標是為每個文件創建一個目錄以進行下游處理,使用mkdir /path/to/new/directory/$NEWNAME

$(stuff)作為命令執行stuff並將其輸出替換回命令行。 所以當你這樣做時:

$($f|cut -c3-12)

它試圖執行$f作為命令,並將其輸出管道cut 您收到錯誤,因為$f中的文件沒有執行權限。

如果你試圖削減變量$f的內容,你需要回應它:

NEWNAME=$(echo "$f" | cut -c3-12)

但是沒有必要為此使用cutbash有一個內置的參數擴展運算符來選擇子字符串:

NEWNAME=${f:2:10}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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