Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux `echo`(shell bash)发送整数值,而不仅仅是字符和字符串。可能吗? 问题:_Linux_Bash_Shell_Char - Fatal编程技术网

Linux `echo`(shell bash)发送整数值,而不仅仅是字符和字符串。可能吗? 问题:

Linux `echo`(shell bash)发送整数值,而不仅仅是字符和字符串。可能吗? 问题:,linux,bash,shell,char,Linux,Bash,Shell,Char,echo-n 1>/dev/LED写入1的ASCII值,即对应于49的字符十进制值。 好的,我可以轻松管理设备驱动程序中的ASCII字符,但问题是: 我可以在Linux中使用shell bash的echo函数发送“无符号整数”吗? 目标是编写十六进制0x01 上下文 我认为这并不重要,但我正在尝试将整数发送到Linux设备驱动程序中的。write函数。要管理ASCII,它和以往一样简单,但我希望内核代码尽可能简单,因为它会影响性能。echo只写字符串;如果希望字符串包含字符0x01,则必须指定该

echo-n 1>/dev/LED
写入
1
的ASCII值,即对应于
49
的字符十进制值。 好的,我可以轻松管理设备驱动程序中的ASCII字符,但问题是: 我可以在Linux中使用shell bash的
echo
函数发送“无符号整数”吗? 目标是编写十六进制
0x01

上下文
我认为这并不重要,但我正在尝试将整数发送到Linux设备驱动程序中的
。write
函数。要管理ASCII,它和以往一样简单,但我希望内核代码尽可能简单,因为它会影响性能。

echo
只写字符串;如果希望字符串包含字符
0x01
,则必须指定该字符。您应该使用
printf
,但是:

printf '\x01' > /dev/LED
这将在
bash
中工作,但是
printf
的其他实现可能不支持十六进制转义。Octal是唯一受支持的标准:

printf '\001' > /dev/LED

echo
只写字符串;如果希望字符串包含字符
0x01
,则必须指定该字符。您应该使用
printf
,但是:

printf '\x01' > /dev/LED
这将在
bash
中工作,但是
printf
的其他实现可能不支持十六进制转义。Octal是唯一受支持的标准:

printf '\001' > /dev/LED
-e
选项告诉
echo
解释转义序列,
-n
告诉它忽略尾随的新行


-e
选项告诉
echo
解释转义序列,而
-n
告诉它忽略尾随的新行。

echo
对于作业是错误的工具--请参阅的应用程序使用部分以获取上下文。
echo
对于作业是错误的工具--请参阅的应用程序使用部分以获取上下文。
echo-e
不可移植--任何版本的
echo
都不可移植当输出时,除了打印
-e
以外的任何内容都违反了相关POSIX标准;bash的
echo
有时只会违反该标准——如果
xpg_echo
posix
运行时标志都处于活动状态,则其行为是兼容的,因此该代码无法工作。是的,我使用了-n,因为我看到它试图编写新行字符!(
-e
是“主动违反”,与扩展相反,因为它违反了规范中的黑白语言“实现不支持任何选项”;
-n
是唯一的例外,因为它被定义为使
echo
的行为在出现时未被标准定义——但在程序中使用未定义的行为也不是一件好事).
echo-e
是不可移植的——任何版本的
echo
在输出时除了打印
-e
外,其他任何功能都会违反相关POSIX标准;bash的
echo
有时只会违反该标准——如果
xpg_echo
posix
运行时标志都处于活动状态,则其行为是兼容的,因此该代码无法工作。是的,我使用了-n,因为我看到它试图编写新行字符!(
-e
是“主动违反”,与扩展相反,因为它违反了规范中的黑白语言“实现不支持任何选项”;
-n
是唯一的例外,因为它被定义为使
echo
的行为在出现时未被标准定义——但在程序中使用未定义的行为也不是一件好事)。