如何在shellscript中存储十六进制值

如何在shellscript中存储十六进制值,shell,Shell,我不熟悉shellscript 我有这个节目 for(( s=0x001; s <=0x00f; s++)) do echo $s done 这里的应该包含十六进制值。如何做 我认为printf“%x”$s应该可以。它是POSIX标准的一部分,在bash中作为内置命令实现: $ type printf printf is a shell builtin …因此可以在manbash中找到文档,至少对于bash shell是这样。我认为printf“%x”$s应该可以。它是POSIX标准的

我不熟悉shellscript

我有这个节目

for(( s=0x001; s <=0x00f; s++))
do
echo $s
done
这里的应该包含十六进制值。如何做

我认为
printf“%x”$s
应该可以。它是POSIX标准的一部分,在
bash
中作为内置命令实现:

$ type printf
printf is a shell builtin
…因此可以在
manbash
中找到文档,至少对于bash shell是这样。

我认为
printf“%x”$s
应该可以。它是POSIX标准的一部分,在
bash
中作为内置命令实现:

$ type printf
printf is a shell builtin

…因此可以在
manbash
中找到文档,至少对于bash shell是这样。

使用
printf
命令。它是标准的,工作起来或多或少像C函数

printf "%x\n" $s

使用
printf
命令。它是标准的,工作起来或多或少像C函数

printf "%x\n" $s

我不太确定是否理解更新后的问题,但是

。。。如果您需要给定的格式,可以使用类似的格式:

print "8 %x q" $s | /usr/sbin/tejas/test /dev/slot$1/tupp_fpga$devNo | grep "at offset"
如果您不熟悉printf样式的函数,请参阅描述可用函数的众多网页之一


在这种特殊情况下,格式字符串中的
%x
将替换为下一个参数的十六进制表示形式。假设
s
变量保持值1010(或者0xA16或0138——实际上是相同的),那么
printf
内部命令将把字符串
8as
写入
/usr/sbin/tejas/test
工具的标准输入中。

我不太确定是否理解更新后的问题,但是

。。。如果您需要给定的格式,可以使用类似的格式:

print "8 %x q" $s | /usr/sbin/tejas/test /dev/slot$1/tupp_fpga$devNo | grep "at offset"
如果您不熟悉printf样式的函数,请参阅描述可用函数的众多网页之一


在这种特殊情况下,格式字符串中的
%x
将替换为下一个参数的十六进制表示形式。假设
s
变量保持值1010(或者0xA16或0138——它们实际上是相同的),那么
printf
内部命令将把字符串
8as
写入
/usr/sbin/tejas/test
工具的标准输入中。

您可以使用管道
printf
,就像使用管道传输其他任何东西一样:
printf%x“15 | cat
,例如+1,但请注意,
manbash
(和
help printf
)仅描述bash内置对printf可执行文件功能的扩展(特别是选项
-v
和格式说明符
%q
)。要查看核心功能,包括支持的格式说明符的描述(如此处的
%x
),请使用
manprintf
。您可以像处理其他任何内容一样处理
printf
printf“%x”15 | cat
,例如+1,但请注意
manbash
(和
帮助printf
)仅描述bash内置的对printf可执行文件功能的扩展(特别是选项
-v
和格式说明符
%q
)。要查看核心功能,包括支持的格式说明符的描述(如此处的
%x
),请使用
man printf