gpt4 book ai didi

bash - 我怎样才能对现有的 bash 变量进行 ANSI C 引用?

转载 作者:行者123 更新时间:2023-11-29 09:09:38 24 4
gpt4 key购买 nike

我看过this question ,但它不包括我的用例。

假设我有变量 foo,它包含四个字符的文字 \x60

我要执行 ANSI C Quoting在这个变量的内容上并将它存储到另一个变量bar

我尝试了以下方法,但都没有达到预期的效果。

bar=$'$foo'   
echo $bar
bar=$"$foo"
echo $bar

输出:

$foo
\x61

期望的输出(\x61 的实际值):

a

在一般情况下,包括不可打印的字符,我如何实现这一点?请注意,在这种情况下,a 仅用作示例,以便更轻松地测试该方法是否有效。

最佳答案

到目前为止最简单的解决方案,如果您使用 bash:

printf %b "$foo"

或者,将其保存在另一个变量名 bar 中:

printf -v bar %b "$foo"

来自 help printf:

In addition to the standard format specifications described in printf(1) and printf(3), printf interprets:

 %b        expand backslash escape sequences in the corresponding argument
%q quote the argument in a way that can be reused as shell input
%(fmt)T output the date-time string resulting from using FMT as a format
string for strftime(3)

不过也有一些极端情况:

\c terminates output, backslashes in \', \", and \? are not removed, and octal escapes beginning with \0 may contain up to four digits

关于bash - 我怎样才能对现有的 bash 变量进行 ANSI C 引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23235651/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com