bash 过滤注释文本取某一参数给变量赋值的一个问题

2025-05-13 13:46:56
推荐回答(2个)
回答1:

#!/bin/bash
line="abc [def] gh"
echo $line
line=$(echo $line | tr -d []) # line=$(echo "$line" | tr -d "[]") # 都可以

echo $line

ABS_Guide_cn.txt 是好书。
tr
字符转换过滤器.

注意: 必须使用引用或中括号, 这样做才是合理的. 引用可以阻止 shell 重新解释出现在
tr 命令序列中的特殊字符.中括号应该被引用起来防止被shell扩展.

无论 tr "A-Z" "*" 写字符修改为星号(写到 stdout).但是在某些系统上可能就不能正常工作了, 而 tr A-Z '
[**]' 在任何系统上都可以正常工作.

回答2:

line=$(awk -F'[][]' '/^[ \t]*\[/{print $2}' $filename)