标签: null

bash 映射文件 NUL 错误?

bashmapfile在处理 NUL 分隔输入时似乎被破坏了。特别是,它无法-正确处理减号字符 ( ),将 1 后的空字符串视为行尾标记。

例如:

#!/bin/bash

mkdir /tmp/junk
cd /tmp/junk

touch a.txt b.txt c.txt d-e-f.txt
declare -a files

echo "mapfile using default \\n delimiter"
mapfile -t  files < <(find . -maxdepth 1 -type f -name '*.txt')
typeset -p files

echo
echo "mapfile using NUL delimiter"
mapfile -d'' -t  files < <(find . -maxdepth 1 -type f -name '*.txt' -print0)
typeset -p files

echo
echo "and again"
mapfile -d$'\0' -t  files < <(find . …
Run Code Online (Sandbox Code Playgroud)

bash null

2
推荐指数
1
解决办法
681
查看次数

如果 Bash 数组不能包含空字符串,这个数组是如何做到的?

我最近发现不能将空字符串传递给 Bash 数组。这很棘手,因为我试图将空字符串值插入到数组中。

然而,我注意到 Bash 完成变量 COMP_WORDS 可以包含空值。

我编写了一个虚拟完成脚本来说明这一点,并启用了调试选项:

  1 #!/bin/bash
  2 _comp() {
  3     set -xv
  4     for i in ${!COMP_WORDS[@]}; do
  5         echo "<${COMP_WORDS[$i]}>"                                                                                         
  6     done
  7     set +xv
  8     local cur=${COMP_WORDS[$COMP_CWORD]}
  9 
 10     local arr=(apple banana mango pineapple)
 11     COMPREPLY=()
 12     COMPREPLY=($(compgen -W "${arr[*]}" -- $cur))
 13 
 14 }
 15 
 16 complete -F _comp dummy
Run Code Online (Sandbox Code Playgroud)

如果我获取该文件,然后输入以下内容:

dummy apple   banana
Run Code Online (Sandbox Code Playgroud)

然后,如果我将光标移回苹果和香蕉之间的中间空间(下面用下划线表示)...

dummy apple _ banana
Run Code Online (Sandbox Code Playgroud)

然后,如果我点击选项卡,我会从生成的调试中得到以下输出,显示四个数组元素,“虚拟”“苹果”“香蕉”

for i in '${!COMP_WORDS[@]}'
+ echo '<dummy>'
<dummy>
+ for …
Run Code Online (Sandbox Code Playgroud)

bash array autocomplete shell-script null

1
推荐指数
1
解决办法
4505
查看次数

如何默认为所有 sh/bash 命令启用 &amp;&gt;/dev/null ?

有没有办法&>/dev/null在 sh/bash 脚本中设置默认行为?我宁愿不必将此附加到控制台中的每个命令,而不是 *.sh 脚本。

我正在寻找一个全局设置......或者至少是某种自定义别名,但是可以使任何命令和每个命令自动附加&>/dev/null到末尾。

有任何想法吗?

bash stderr null

0
推荐指数
1
解决办法
1450
查看次数

cp 大文件到 /dev/null 以将大小减小为零

我刚刚遇到的建议是,如果您想删除一个大文件并且一个进程打开了文件句柄,您应该将它复制到 /dev/null 并且它的大小将减少到零。

这是如何运作的?或者这甚至有效?

快速搜索后,我发现了相互矛盾的答案,从“是的,这完全有效”到“你的整个机器要爆炸了”。有人可以启发我吗?

我在这里找到了这个问题:https : //syedali.net/engineer-interview-questions/

filesystems cp files null

0
推荐指数
1
解决办法
1万
查看次数

当你写入 /dev/null 时会发生什么?重点是什么?

echo "Some text" >> /dev/null 然后尝试cat null没有输出。有人可以解释为什么会这样吗?

null

0
推荐指数
1
解决办法
2471
查看次数

在 Unix 中从文件中删除所有零字节

我从原型硬件 RNG 中获得了一个数据文件,但是由于某种原因它产生了大量0x00字节。我想删除所有这些0x00字节,以便我可以测试其余数据是否是随机的。

我将如何在终端中执行此操作?

shell null

0
推荐指数
1
解决办法
982
查看次数

标签 统计

null ×6

bash ×3

array ×1

autocomplete ×1

cp ×1

files ×1

filesystems ×1

shell ×1

shell-script ×1

stderr ×1