我是一名有用的助手,可以为您翻译文本。以下是您需要翻译的内容:
它会出现如下错误:
我希望有人能告诉我我做错了什么。谢谢。
====== 编辑======= 以下代码现在产生以下错误:
这段代码会导致以下错误:
我对shell脚本非常陌生(实际上是我的第一天),我正在使用它来创建一个可移植的C代码,以便在我的其中一个课程中使用。我想定义一个CPP指令,该指令将定义我正在编译的系统的字节序(无论是Solaris、BSD、Linux、OSX等)。但我遇到了一些困难。
我当前脚本的关键是以下行:
printf '\1' | od -dAn;
这个代码可以输出小端模式下的 1
,大端模式下的256
(我在所有系统上都测试过,看起来很好用)。
但是,当我把它加到下面的脚本中时,它似乎不能正常工作。
CONFIG_HRD="config.h"
ENDIAN=printf '\1' | od -dAn;
touch $CONFIG_HRD
if $ENDIAN -eq \1; then
echo "#define LITTLE_ENDIAN" >> $CONFIG_HRD
else
echo "#define BIG_ENDIAN" >> $CONFIG_HRD
fi
它会出现如下错误:
./script.sh: line 2: \1: command not found
./script.sh: line 5: -eq: command not found
我希望有人能告诉我我做错了什么。谢谢。
====== 编辑======= 以下代码现在产生以下错误:
CONFIG_HRD="config.h"
ENDIAN=$(printf '\1' | od -dAn)
touch $CONFIG_HRD
if `$ENDIAN -eq 1`; then
echo "#define LITTLE_ENDIAN" >> $CONFIG_HRD
else
echo "#define BIG_ENDIAN" >> $CONFIG_HRD
fi
这个错误:
./script.sh: line 5: 1: command not found
这段代码会导致以下错误:
CONFIG_HRD="config.h"
ENDIAN=$(printf '\1' | od -dAn)
touch $CONFIG_HRD
if `$ENDIAN=1`; then
echo "#define LITTLE_ENDIAN" >> $CONFIG_HRD
else
echo "#define BIG_ENDIAN" >> $CONFIG_HRD
fi
错误:
./script.sh: line 5: 1=1: command not found
这个(方括号而不是引号)会导致另一个错误:
CONFIG_HRD="config.h"
ENDIAN=$(printf '\1' | od -dAn)
touch $CONFIG_HRD
if [$ENDIAN=1]; then
echo "#define LITTLE_ENDIAN" >> $CONFIG_HRD
else
echo "#define BIG_ENDIAN" >> $CONFIG_HRD
fi
错误:
./script.sh: line 5: [: missing `]'