相关疑难解决方法(0)

除了 Bash 和 Zsh 之外的 shell 是否支持 ANSI-C 引用?例如 $'string'

我有一个 shell 脚本,它使用以下内容在其输出中打印绿色复选标记:

col_green="\e[32;01m"
col_reset="\e[39;49;00m"

echo -e "Done ${col_green}?${col_reset}"
Run Code Online (Sandbox Code Playgroud)

在阅读了 Bash 的ANSI-C Quoting 之后,我意识到我可以在设置颜色变量时使用它并-e从我的echo 中删除标志。

col_green=$'\e[32;01m'
col_reset=$'\e[39;49;00m'

echo "Done ${col_green}?${col_reset}"
Run Code Online (Sandbox Code Playgroud)

这似乎很吸引人,因为这意味着无论是传递给 Bash 的内置echo还是外部 util /bin/echo(我使用的是 macOS),消息都能正确打印。

但这是否会降低脚本的可移植性?我知道 Bash 和 Zsh 支持这种引用风格,但我不确定其他人。

shell string quoting escape-characters portability

14
推荐指数
1
解决办法
1425
查看次数

用字符串中的数字替换逗号

我有文本文件包含这样的字符串

abc,def,ghi,jkl,mno,pqr,stu,wxyz
Run Code Online (Sandbox Code Playgroud)

我想让它像这样

1.abc
2.def
3.ghi
4.jkl
5.mno
6.pqr
7.stu
8.wxyz
Run Code Online (Sandbox Code Playgroud)

我怎样才能使用 sed 做到这一点?

sed

2
推荐指数
2
解决办法
1108
查看次数

标签 统计

escape-characters ×1

portability ×1

quoting ×1

sed ×1

shell ×1

string ×1