ZSH 脚本中的增量数
Increment Number in ZSH script
我正在尝试根据目录中的文件数量创建目录,我的方法是循环。
我通过数字变量跟踪数字,并希望在每个偶数之后增加它,创建一个目录。
到目前为止,这是我的代码:
#!/bin/zsh
LOOP=$(ls 2021/*.xlsx)
totalFiles=$(ls 2021/*.xlsx | wc -l)
directoryCount=0
count=0
for FILE in ${LOOP[@]}; do
echo "BEFORE: $count"
count=$((count+1))
echo "AFTER: $count"
echo $FILE
done
echo "TOTAL FILE: $totalFiles"
echo $count
我得到的输出是:
BEFORE: 0
AFTER: 1
2021/*Tanner2103.xlsx
2021/*Tanner2104.xlsx
2021/*Tanner2105.xlsx
2021/*Tanner2106.xlsx
TOTAL FILE: 4
1
我不明白为什么 count 只递增一次,但循环显然有更多的迭代次数。
所以基本上因为有 4 个文件,我想将它们分成 2 个目录,我稍后会做逻辑。但现在我只是想让目录代码正常工作。
好吧,我觉得很傻。我认为 ls
会作为一个可迭代对象返回,但实际上它整个 return 一次迭代。
这是我更新的代码,它会按照我想要的方式更新。
totalFiles=$(ls 2021/*.xlsx | wc -l)
count=0
for FILE in 2021/**/*(.); do
echo "BEFORE $count"
echo "$FILE"
((count++))
echo "AFTER $count"
done
echo "TOTAL FILE: $totalFiles"
echo $count
result:
BEFORE 0
2021/*Tanner2103.xlsx
AFTER 1
BEFORE 1
2021/*Tanner2104.xlsx
AFTER 2
BEFORE 2
2021/*Tanner2105.xlsx
AFTER 3
BEFORE 3
2021/*Tanner2106.xlsx
AFTER 4
TOTAL FILE: 4
4
我正在尝试根据目录中的文件数量创建目录,我的方法是循环。
我通过数字变量跟踪数字,并希望在每个偶数之后增加它,创建一个目录。
到目前为止,这是我的代码:
#!/bin/zsh
LOOP=$(ls 2021/*.xlsx)
totalFiles=$(ls 2021/*.xlsx | wc -l)
directoryCount=0
count=0
for FILE in ${LOOP[@]}; do
echo "BEFORE: $count"
count=$((count+1))
echo "AFTER: $count"
echo $FILE
done
echo "TOTAL FILE: $totalFiles"
echo $count
我得到的输出是:
BEFORE: 0
AFTER: 1
2021/*Tanner2103.xlsx
2021/*Tanner2104.xlsx
2021/*Tanner2105.xlsx
2021/*Tanner2106.xlsx
TOTAL FILE: 4
1
我不明白为什么 count 只递增一次,但循环显然有更多的迭代次数。
所以基本上因为有 4 个文件,我想将它们分成 2 个目录,我稍后会做逻辑。但现在我只是想让目录代码正常工作。
好吧,我觉得很傻。我认为 ls
会作为一个可迭代对象返回,但实际上它整个 return 一次迭代。
这是我更新的代码,它会按照我想要的方式更新。
totalFiles=$(ls 2021/*.xlsx | wc -l)
count=0
for FILE in 2021/**/*(.); do
echo "BEFORE $count"
echo "$FILE"
((count++))
echo "AFTER $count"
done
echo "TOTAL FILE: $totalFiles"
echo $count
result:
BEFORE 0
2021/*Tanner2103.xlsx
AFTER 1
BEFORE 1
2021/*Tanner2104.xlsx
AFTER 2
BEFORE 2
2021/*Tanner2105.xlsx
AFTER 3
BEFORE 3
2021/*Tanner2106.xlsx
AFTER 4
TOTAL FILE: 4
4