我一直在嘗試創建讀取 txt 檔案(source.txt)的腳本并創建具有此名稱的檔案夾,如果尚未創建檔案夾,我需要將名稱放入 Error.txt
在這里,我有適用于 Windows 的腳本,但我需要為 linux 創建它
視窗:
for /F "usebackq eol=| delims=" %G in ("source.txt") do md "Fld1\%~G" 2>nul & if not exist "Fld1\%~G">>"Error.txt"
Linux腳本拋出錯誤“語法錯誤接近意外令牌完成,沒有if [ ! -d Fld1/$line ] then echo "$line" > Error.txt腳本可以正常作業,創建我想要的一切,但我需要這個腳本與這種情況。
while read line;
do
mkdir "Fld1/$line"
if [ ! -d Fld1/$line ]
then
echo "$line" > Error.txt
done < source.txt
我會感謝任何解決方案
uj5u.com熱心網友回復:
mkdir已經告訴你它是否成功。
fi不見了。
我想你>>想追加到檔案。
使用 shellcheck 檢查您的腳本。您的腳本可能如下所示:
while IFS= read -r line; do
if ! mkdir "Fld1/$line"; then
echo "Fld1/$line" >> Error.txt
fi
done < source.txt
我想我會考慮:
cd "Fld1" && xargs -d '\n' -n1 mkdir <source.txt 2>Error.txt
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/523731.html
標籤:linuxubuntu
上一篇:從文本檔案中洗掉第一個N字符
下一篇:bash中基于過濾器的索引陣列
