为什么这个表达有效cat > d.txt <<< "$val"并且cat > d.txt <<< $val不起作用?据我所知<<<,将变量值重定向到stdin.我对吗?
cat >d.txt <<<$val只要不$val包含空格就能正常工作.否则,使用双引号是必要的,以防止将每个单词$val视为单独的参数.
例如,如果你有
val="a b"
cat >d.txt <<<$val
Run Code Online (Sandbox Code Playgroud)
shell试图做的是
cat >d.txt <<<a b
Run Code Online (Sandbox Code Playgroud)
所以只提供"a"作为输入,而"b"只是另一个参数cat.
通过使用双引号
val="a b"
cat >d.txt <<<"$val"
Run Code Online (Sandbox Code Playgroud)
现在shell执行了
cat >d.txt <<<"a b"
Run Code Online (Sandbox Code Playgroud)
所以整个字符串"a b"被视为输入.
| 归档时间: |
|
| 查看次数: |
41 次 |
| 最近记录: |