【发布时间】:2018-11-19 20:16:07
【问题描述】:
我有一个名为 file.txt 的文件,其中包含一些从 1 到 100 的随机数。因此,脚本会读取该文件并执行一堆命令并打印一些语句。
实现结果的一种方法可能是这样的,但在脚本中包含 100 个 if 和 elif 语句看起来不太好。
for i in `cat file.txt`; do
echo "Displaying" $i
if [[ $i = 1 ]]; then
echo "blah blah blah for" $i
command1
command2
elif [[ $i = 2 ]]; then
echo "blah blah blah for" $i
command3
command4
command5
elif [[ $i = 3 ]]; then
echo "blah blah blah for" $i
command6
command7
elif [[ $i = 4 ]]; then
echo "blah blah blah for" $i
command8
command9
command10
elif [[ $i = 5 ]]; then
echo "blah blah blah for" $i
command11
command12
command13
command14
elif [[ $i = 6 ]]; then
echo "blah blah blah for" $i
command15
....
....
....
....
....
....
elif [[ $i = 99 ]]; then
echo "blah blah blah for" $i
command310
command311
command312
command313
command314
elif [[ $i = 100 ]]; then
echo "blah blah blah for" $i
command315
fi
done
在 bash 上有没有更好或更聪明的方法来做这些
【问题讨论】:
-
我会从
case声明case $i in 1) ... ;; 2) ... ;; ... ;; 99) ... ;; esac开始。 -
@JosephLi 在
elifs 之间用独角兽表情符号写 cmets 会很好看
标签: bash if-statement