You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shell脚本无法读取加密密码登录Tableau Server问题求助

你遇到的报错是三个常见的Shell脚本编写失误导致的,修复方案如下:

问题根源

  • 脚本首行的Shebang声明错误,你写的是#bin/bash,缺少根路径斜杠,正确应为#!/bin/bash,会导致Shell解析器识别异常。
  • openssl解密输出的明文末尾默认携带换行符,存入PASSWD变量后,传给tabcmd时会被识别为额外的非法参数。
  • 调用tabcmd时变量没有加双引号包裹,若密码包含特殊字符、空格,会被Shell拆分为多个参数,触发参数数量错误。

修复后的完整脚本

#!/bin/bash

USERNAME=test
# 用tr -d '\n'删除解密结果末尾的换行符,同时用$()替代反引号提升可读性
PASSWD=$(cat secret.txt | openssl enc -aes-256-cbc -md sha512 -a -d -pbkdf2 \
-iter 100000 -salt -pass pass:Secret@123# | tr -d '\n')

# 变量用双引号包裹避免分词
tabcmd login -u "$USERNAME" -p "$PASSWD"

调试验证方法

如果修改后仍然报错,可以在调用tabcmd前增加一行代码echo "密码长度为: ${#PASSWD}",确认输出的长度和你明文密码长度一致,即可验证换行符是否已经被完全清理。

内容的提问来源于stack exchange,提问作者Djabone

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 13:27:00