在一次脚本挑战中,有人要求我解码X次(说100次(一个base64文件(base64.txt(。 所以我写了这个小的bash脚本来做到这一点。
for item in `cat base64.txt`;do
for count in {1..100};do
if [ $count -eq 1 ]; then
current=$(echo "$item" |base64 --decode)
else
current=$(echo "$current" |base64 --decode)
fi
if [ $count -eq 100 ]; then
echo $current
fi
done
done
它按预期工作,我得到了出席的结果。 我现在正在寻找一种改进这个脚本的方法,因为我离专家还很远,我想看看有什么可以改善我应对这种挑战的方式。
你们中的一些人可以给我一些建议吗?
解码
X次(说100次(一个base64文件(base64.txt(
只有 1 个文件,其中包含 1 行。
只需读取文件内容,解码100次即可输出。
state=$(<base64.txt)
for i in {1..100}; do
state=$(<<<"$state" base64 --decode)
done
echo "$state"
笔记:
- 不鼓励使用反引号
`
。请改用$(...)
。bash 已弃用和过时的语法 for i in cat
是 bash 中常见的反模式。如何在 bash 中逐行读取文件- 如果文件仅包含一行,则无需循环访问文件中的单词。
- 在 bash 中
echo "$item" |
是对echo
的无用用用(并且也是一个小风险,它可能不起作用,例如。item=-e
(。在 bash 中,您可以改用此处字符串。