小编Shr*_*ram的帖子

tr 命令无法处理从 grep 管道传输的颜色输出

我运行的是 macOS 12.3.1

我在 .zshrc 中添加了几行,即。

export GREP_OPTIONS='--color=always'
export GREP_COLOR='1;35;40'
Run Code Online (Sandbox Code Playgroud)

之后,当我通过管道将 grep 输出传输到 tr 时,它返回相同的行数,但所有行都是空白的

例如:

grep ^.....$ /usr/share/dict/words | tr "[:lower:]" "[:upper:]"
Run Code Online (Sandbox Code Playgroud)

返回 10230 个空行。

这是预期的吗?

grep tr macos

3
推荐指数
1
解决办法
669
查看次数

如何在 bash 脚本中混合普通参数和标记参数?

例如,gcc 接受不带任何标志的输入文件和带有以下-o标志的输出文件:

gcc input.c -o output.out

或者

gcc -o output.out input.c

我正在创建一个随机密码生成器 bash 脚本,用户应该能够分别使用 、 、-s标志-l指定特殊字符、小写字符和大写字符的数量-u。他们还应该能够在没有任何标志的情况下指定密码的长度。

用法示例:

./randompassword.sh -s2 -u2 -l3 16

应表示包含 2 个特殊字符、2 个大写字符、3 个小写字符且长度为 16 的密码。

我可以getopts像这样解析标志:

while getopts s:l:u: flag
do
    case "${flag}" in
        s) special=${OPTARG};;
        l) lower=${OPTARG};;
        u) upper=${OPTARG};;
    esac
done
Run Code Online (Sandbox Code Playgroud)

但是我不知道如何获取没有标志的长度参数。

我尝试使用$1,但这个参数应该能够位于命令中的任何位置,就像 gcc 示例一样。

bash shell-script getopts arguments

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

标签 统计

arguments ×1

bash ×1

getopts ×1

grep ×1

macos ×1

shell-script ×1

tr ×1