Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.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会意外地追加空字符_Linux_Shell_Echo_Mmap_Brk - Fatal编程技术网

Linux 在这种情况下,echo会意外地追加空字符

Linux 在这种情况下,echo会意外地追加空字符,linux,shell,echo,mmap,brk,Linux,Shell,Echo,Mmap,Brk,我在一台微型机器上工作(MEM:256M),它的操作系统是linux 我编写了一个bash脚本,它将在系统启动时执行(执行命令被添加到/etc/rc.local) 在这个脚本中,有一个命令echo“a\u long\u string”>/etc/custom\u config a_long_string是长度为248的字符串 为了测试脚本,我多次重新启动系统,发现一个问题: 有时,命令echo“a_long_string”>/etc/custom_config将附加248个空字符加上a_long

我在一台微型机器上工作(MEM:256M),它的操作系统是linux

我编写了一个bash脚本,它将在系统启动时执行(执行命令被添加到
/etc/rc.local

在这个脚本中,有一个命令
echo“a\u long\u string”>/etc/custom\u config

a_long_string
是长度为248的字符串

为了测试脚本,我多次重新启动系统,发现一个问题:

有时,命令
echo“a_long_string”>/etc/custom_config
将附加248个空字符加上
a_long_string
,这意味着通常在执行此命令后,我们可以在文件
/etc/custom_config
的末尾找到
a_long_string
,但有时我确实发现附加的字符串如下所示:

^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@...a_long_string

我在想到底发生了什么。
echo
长字符串是否会导致小型RAM系统出现类似问题?

您将此问题标记为
bash
。它真的是
bash
还是类似于busybox shell的东西?如果使用严格的POSIX shell,我通常会推荐
printf
而不是
echo
,因为它通常更便于携带,但我怀疑这是您当前问题的根源。尝试使用
set-x
并将stderr输出到日志文件以进行调试。@jordanm这是标准的POSIX shell。但是,主内存非常小,硬盘是SD卡。您将此问题标记为
bash
。它真的是
bash
还是类似于busybox shell的东西?如果使用严格的POSIX shell,我通常会推荐
printf
而不是
echo
,因为它通常更便于携带,但我怀疑这是您当前问题的根源。尝试使用
set-x
并将stderr输出到日志文件以进行调试。@jordanm这是标准的POSIX shell。但是,主存储器非常小,硬盘是SD卡。