Iss*_*204 5 shell-script echo quoting
假设您必须将其回显到文件中:
RZW"a4k6[)b!^"%*X6Evf
Run Code Online (Sandbox Code Playgroud)
你怎么做呢?
我要回显的实际“行”是 2048 个字符的行。
小智 6
只需将其放在单引号中:
echo 'RZW"a4k6[)b!^"%*X6Evf' > file
Run Code Online (Sandbox Code Playgroud)
但是,如果字符串中有任何单引号,则需要转义双引号 ( "'") 中的每一个并将结果“粘合”在一起,如下所示:
echo 'text without single quotes'"'"'and other text without single quote'
Run Code Online (Sandbox Code Playgroud)
对于任意内容,您还可以使用:
cat << 'EOF' > file
RZW"a`4$k6[)b!^"'%*X6Evf
RZW"a`4$k6[)b!^"'%*X6Evf
EOF
Run Code Online (Sandbox Code Playgroud)
(只要该内容不包含完全由 组成的行EOF,在这种情况下,您可以使用不同的分隔符)。
要包含 NUL 字符(^@通常用Ctrl+VCtrl+Space或输入Ctrl+VCtrl+@),以上仅适用于zsh. 使用其他外壳(和zsh),您可以执行以下操作:
cat > file
Run Code Online (Sandbox Code Playgroud)
输入文本并在完成后点击Ctrl+D一个空行(Ctrl-D如果您想包含一个未终止的行,则点击两次)。
处理任意的、潜在的二进制数据的另一种方法是使用诸如uuencodeor 之类的东西base64:
例如:
printf '\0\1\2\3' > file
Run Code Online (Sandbox Code Playgroud)
可以写成:
uudecode << 'EOF'
begin 644 file
$``$"`P``
`
end
EOF
Run Code Online (Sandbox Code Playgroud)
(通过运行uuencode file < some-filewhere获得的输出some-file包含该特定内容)。
| 归档时间: |
|
| 查看次数: |
1332 次 |
| 最近记录: |