簡體   English   中英

Bash shell從文件夾中讀取文件名,並為每個具有相同名稱的輸入文件創建輸出文件:

[英]Bash shell read names of files from folder and create an output file for each input file with the same name:

在bash shell中,我正在讀取文件夾中的所有文件,如下所示:

 #!/bin/bash
 FILES=MyFolder/*
 for f in $FILES
 do
    echo "Started $f file..."
    ./$f > $f_july_15.txt
    echo "Finished $f file..."
 done

在第6行中,我試圖將每個文件的輸出保存在包含輸入文件名稱的txt文件中,如下所示: $f_july_15.txt 我注意到txt文件根本沒有創建,而echo調用和命令./$f正確執行。 我在名稱中播放了一點$f ,但我無法在輸出文件中獲得輸入文件的名稱。 任何人都可以告訴我為什么會發生這種情況以及如何解決這個問題?

下划線是變量名中的有效字符。

做:

./"$f" > "${f}_july_15.txt"

您的代碼嘗試使用名為f_july_15的變量。 當變量名后跟一個可以作為變量名一部分的字符時,您需要使用大括號來分隔變量名。

暫無
暫無

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

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