![](/img/trans.png)
[英]Bash script to process all files in folder and save all output in different folder with same file names?
[英]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.