我想在我的计算机上有一个文件来存储特定的令牌(而不是让它们只是导出到 shell env)。因此,我希望令牌只能由 sudo 读取,因此访问它需要授权。如何编写只能由 sudo 读取的文件?
bash中这三个代码块有什么区别吗?
使用IFS= :
#!/usr/bin/env bash
while IFS= read -r item; do
echo "[$item]"
done </dev/stdin
Run Code Online (Sandbox Code Playgroud)
使用IFS=$'\n':
#!/usr/bin/env bash
while IFS=$'\n' read -r item; do
echo "[$item]"
done </dev/stdin
Run Code Online (Sandbox Code Playgroud)
使用-d $'\n':
#!/usr/bin/env bash
while read -rd $'\n' item; do
echo "[$item]"
done </dev/stdin
Run Code Online (Sandbox Code Playgroud)
IFS如果两个值和分隔符选项之间存在差异-d,那么在什么情况下会出现差异?
根据我的测试,它们看起来都是一样的:
echo $'one two\nthree\tfour' | test-stdin
# outputs:
# [one two]
# [three four]
Run Code Online (Sandbox Code Playgroud)