gpt4 book ai didi

linux - 将当前文件名回显到文本文件ubuntu?

转载 作者:行者123 更新时间:2023-12-04 18:42:55 25 4
gpt4 key购买 nike

我通常只是四处浏览而不是发布问题,但是我目前正在学习如何编写 shell 脚本并且我已经陷入困境。
目前我有一个结构:

Main
---Hub1
---Hub2
---Hub3
---Hub4
一直到Hub20。
我想要的结构是:
Main
---Hub1
--------Notes_1.txt >> "The <file_name> belongs to <user> and was created in Hub1"
---Hub2
--------Notes_2.txt >> "The <file_name> belongs to <user> and was created in Hub2"
等等。
目前我的代码看起来像这样
i=1
until (($i>20))
filename="~/Main/Hub${i}/Notes_$i.txt"
do
touch ~/Main/Hub${i}/Notes_$i.txt
echo "The $(basename -- "$filename") belongs to $USER was created in the Hub${i}" >> ~/Main/Hub${i}.txt
((i++))
done
它没有做它需要做的事情,我只是无法弄清楚我做错了什么。我知道它的格式不正确。这可能是一个简单的解决方案,或者我完全不在。我想在开始移动它之前让它工作。任何建议都会很棒。谢谢!

最佳答案

您可以使用大括号范围而不是 until .
不要将路径名放在引号中,这会阻止扩展 ~ .
您需要$之前 filenameecho语句来扩展变量。

for i in {1..20}; do
filename=~/Main/Hub${i}/Notes_$i.txt
touch "$filename"
echo "The $(basename -- "$filename") belongs to $USER was created in the Hub${i}" >> ~/Main/Hub${i}.txt
done

关于linux - 将当前文件名回显到文本文件ubuntu?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68170673/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com