使用$直接将字符串传递给echo
$ echo 扩展嵌入的ANSI转义序列#include
int main() {
std::cout << "Hello World!" << std::endl;
}我将字符串分配给一个变量。codeStr='#include \nint main() {\n std::cout << \"Hello World!\" << std::endl;\n}'然后回显变量echo $codeStr我得到的是原始字符串,而不是格式化文本。如何获得格式化文本,如直接传递字符串?#include \nint main() {\n std::cout << \"Hello World!\" << std::endl;\n}'扩展嵌入的ANSI转义序列
A3
我将字符串分配给一个变量。
A4
然后回显变量
A5
我得到的是原始字符串,而不是格式化文本。
如何获得格式化文本,如直接传递字符串?
发布于 2022-02-10 04:14:58
使用-e切换到enable interpretation of backslash escapes。
$ codeStr='#include \nint main() {\n std::cout << \"Hello World!\" << std::endl;\n}'
$ echo -e $codeStr
#include
int main() {
std::cout << \"Hello World!\" << std::endl;
}在@steeldriver注释中寻址,printf也能工作(并且它正确地解释了序列)。
$ codeStr='#include \nint main() {\n std::cout << \"Hello World!\" << std::endl;\n}'
$ printf "$codeStr"
#include
int main() {
std::cout << "Hello World!" << std::endl;
}https://askubuntu.com/questions/1392080
复制相似问题