小编Pas*_*cal的帖子

当脚本读取命令时通过管道输出

我有一个小脚本(称为 stc)来创建 SecureTokenstoken

#!/bin/bash

# Read Password
read -p "Password " -s PASS

TOKEN=$(stoken --stdin <<< "$PASS")
xclip -sel c <<< "$TOKEN"

if [[ ! -t 1 ]]; then
  echo $TOKEN
fi
Run Code Online (Sandbox Code Playgroud)

在正常情况下,它将令牌复制到剪贴板。当存在管道时,应将令牌写入stdout(这是有效的),但由于某种原因,管道中的下一个命令不会执行。我认为这与read但不知道如何解决这个问题有关。

例如

$ stc | tee
Run Code Online (Sandbox Code Playgroud)

结果是

$ stc | tee
Password <token echo>
<hangs forever>
Run Code Online (Sandbox Code Playgroud)

bash pipe

4
推荐指数
1
解决办法
288
查看次数

标签 统计

bash ×1

pipe ×1