使用bash删除Unix中的文件
我正在尝试从我的计算机中删除大量文件,我正在尝试使用使用bash删除Unix中的文件,bash,unix,Bash,Unix,我正在尝试从我的计算机中删除大量文件,我正在尝试使用rm命令编写bash脚本来执行此操作。我想知道的是如何在bash中实现平等,以及为什么我的代码(发布在下面)无法编译。谢谢你的帮助 #!/bin/bash # int-or-string.sh b="0000" c="linorm" f=500 e1=2 e2=20 e3=200 e4=2000 for i in {0..10000} do a=$(($f*$i)) if ["$i" -eq "$e1"] then b="
rm
命令编写bash脚本来执行此操作。我想知道的是如何在bash中实现平等,以及为什么我的代码(发布在下面)无法编译。谢谢你的帮助
#!/bin/bash
# int-or-string.sh
b="0000"
c="linorm"
f=500
e1=2
e2=20
e3=200
e4=2000
for i in {0..10000}
do
a=$(($f*$i))
if ["$i" -eq "$e1"]
then
b="000"
echo $b$
fi
if ["$i" -eq "$e2"]
then
b='00'
fi
if ["$i" -eq "$e3"]
then
b='0'
fi
if ["$i" -eq "$e4"]
then
b =''
fi
if [bash$ expr "$i" % "$e3$ -ne 0]
then
d = $b$c$a
rm d
fi
done
[
之后和]
之前需要空格
if [ "$i" -eq "$e1" ]
bash$
,你可能根本不想要。它可能是一个$()
操作符:
if [ $(expr "$i" % "$e3") -ne 0 ]
=
周围不能有空格。例如,将b='
更改为b='
,将d=$b$c$a
更改为d=$b$c$a
echo$b$
看起来应该是echo$b
[
之后和]
之前需要空格
if [ "$i" -eq "$e1" ]
bash$
,你可能根本不想要。它可能是一个$()
操作符:
if [ $(expr "$i" % "$e3") -ne 0 ]
=
周围不能有空格。例如,将b='
更改为b='
,将d=$b$c$a
更改为d=$b$c$a
echo$b$
看起来应该是echo$b
Shell脚本不编译它是一种脚本语言 尝试修复此行:
if[bash$expr“$i”%”“$e3$-ne 0]
如下所示:
如果[$(expr“$i”%”“$e3$”)-ne 0]
Shell脚本未编译,则它是一种脚本语言
尝试修复此行:
if[bash$expr“$i”%”“$e3$-ne 0]
如下所示:
if[$(expr“$i”%”“$e3$”)-ne 0]
- 在方括号周围需要空格。
实际上是一个命令,与所有命令一样,需要用空格表示[
- 在shell中为变量设置值时,不会在等号周围放置空格
- 在进行比较和设置值时使用引号,以帮助描述值
- 如果条件均不为真,且未设置$b,会发生什么情况
- 这段代码背后的逻辑是什么。它似乎是一堆随机的东西。您将
从1增加到10000,但仅在其中四个值上设置$
的值。每200步,您删除一个文件,但$b
可能会被设置,也可能不会被设置,即使它是文件名的一部分$b
- 这个程序是你自己写的吗?你试过运行吗?你遇到了什么错误?你有没有查看这些错误引用的行。看起来你在命令中包含了
提示符bash$
#!/bin/bash
# int-or-string.sh
b="0000"
c="linorm"
f=500
e1=2
e2=20
e3=200
e4=2000
for i in {0..10000}
do
a=$(($f*$i))
if [ "$i" -eq "$e1" ]
then
b="000"
elif [ "$i" -eq "$e2" ]
then
b='00'
elif [ "$i" -eq "$e3" ]
then
b='0'
elif [ "$i" -eq "$e4" ]
then
b=''
fi
if ! $(($i % $e3))
then
d="$b$c$a"
rm "$d"
fi
done
错误:
和[
]
rmdrm“$d”命令最初是
d`的文件,它只会删除名为
语句转换为if/then
if/else if
- 重写
。[$(expr“$1”%“$e3”)-ne 0]
- 不需要
,因为BASH有expr
语法$(..)
- 不需要测试命令(
),因为[
会自动将零计算为真,将非零计算为假if
- 不需要
- 添加了引号
- 方括号周围需要空格。
实际上是一个命令,与所有命令一样,需要用空格来表示[
- 在shell中为变量设置值时,不会在等号周围放置空格
- 在进行比较和设置值时使用引号,以帮助描述值
- 如果条件均不为真,且未设置$b,会发生什么情况
- 这段代码背后的逻辑是什么。它似乎是一堆随机的东西。您将
从1增加到10000,但仅在其中四个值上设置$
的值。每200步,您删除一个文件,但$b
可能会被设置,也可能不会被设置,即使它是文件名的一部分$b
- 这个程序是你自己写的吗?你试过运行吗?你遇到了什么错误?你有没有查看这些错误引用的行。看起来你在命令中包含了
提示符bash$
#!/bin/bash
# int-or-string.sh
b="0000"
c="linorm"
f=500
e1=2
e2=20
e3=200
e4=2000
for i in {0..10000}
do
a=$(($f*$i))
if [ "$i" -eq "$e1" ]
then
b="000"
elif [ "$i" -eq "$e2" ]
then
b='00'
elif [ "$i" -eq "$e3" ]
then
b='0'
elif [ "$i" -eq "$e4" ]
then
b=''
fi
if ! $(($i % $e3))
then
d="$b$c$a"
rm "$d"
fi
done
错误:
和[
]
rmdrm“$d”命令最初是
d`的文件,它只会删除名为
语句转换为if/then
if/else if
- 重写
。[$(expr“$1”%“$e3”)-ne 0]
- 不需要
,因为BASH有expr
语法$(..)
- 不需要测试命令(
[<
- 不需要