gpt4 book ai didi

linux - (标准输入) 1 : syntax error

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:33:22 29 4
gpt4 key购买 nike

我是 bash 和 linux 的新手,不明白为什么我的代码中有这个错误((standard_in)1:语法错误)。

#!/bin/bash
file_data=$(<merge.bmp)
counter=0
file_size=$(stat -c%s "merge.bmp")
touch file1.bmp
touch file2.bmp
while [ $counter -lt 10 ]; do
if [ `echo "$counter % 2" | bc` -eq 0 ]; then
var=`xxd -p -l1 -s $counter merge.bmp`
hex_var=$(echo "obase=16; $var" | bc)
else
var=`xxd -p -l1 -s $counter merge.bmp`
hex_var=$(echo "obase=16;$var" | bc)
fi
let counter=counter+1
done
echo "DONE!"

最佳答案

这是您用于算术计算的工具 bc 出现的错误。我怀疑变量赋值 $var 导致 echo "obase=16; $var"| bc 有一个 bc 不喜欢的格式错误/空值。

如果您使用的是 bash shell,您可以使用 $((..)) 结构来很好地使用它的过度算术评估

for (( counter=0; counter<10; counter++ )); do
if (( counter % 2 == 0 )); then
var=$(xxd -p -l1 -s "$counter" merge.bmp)
printf -v hex_var '%x' "$var"
fi
done

%x 应用必要的十进制到所需的十六进制转换。此外,您在 ifelse 子句中执行相同的操作。还删除了用于命令替换的过时的反引号语法,而是使用 $(..)

关于linux - (标准输入) 1 : syntax error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48238631/

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