Cas*_*bel 25
使用bash,printf内置%q函数有一个额外的格式说明符,它以友好的方式打印相应的参数:
除了标准printf(1)格式,
%b导致printf的扩大反斜杠转义序列中的相应参数(除了\c终止输出,反斜杠\',\"和\?不会被删除,并以八进制溢出开头\0可以含有至多四个数字),和%q导致的printf输出在可重新用作壳输入一个格式对应的参数.
所以你可以这样做:
printf %q "$VARIABLE"
printf %q "$(my_command)"
Run Code Online (Sandbox Code Playgroud)
获取变量或命令输出的内容,其格式可以安全地再次作为输入传入(即空间转义).例如:
$ printf "%q\n" "foo bar"
foo\ bar
Run Code Online (Sandbox Code Playgroud)
(我添加了一个换行符,因此它在交互式shell中非常漂亮.)
| 归档时间: |
|
| 查看次数: |
5423 次 |
| 最近记录: |