【发布时间】:2026-02-21 06:15:02
【问题描述】:
我对 bash(以及整个 linux)还很陌生。
研究了一整天,以为这是一个我不理解的简单解决方法,但我尝试了上千种不同的方法,但仍然无法使其正常工作……需要一双额外的眼睛和一些建议。
我有一个 csv,其中只有一列托管在 PasswordVault 中托管的属性名称,我需要使用 PasswordVault 客户端查询其密码。
这是一个有效的查询命令:
/opt/CARKaim/sdk/clipasswordsdk GetPassword -p AppDescs.AppID=TEST-APP -p Query="safe=TEST-SAFE;folder=root;object=TEST-SAFE.dev-pwd" -p RequiredProps=Address,UserName -o Password,PassProps.UserName
我在 CSV 中仅使用 2 个值进行测试:
TEST-SAFE.dev-pwd
TEST-SAFE.prd-pwd
当我执行以下操作时:
while IFS="," read f1
do
echo $f1
/opt/CARKaim/sdk/clipasswordsdk GetPassword -p AppDescs.AppID=TEST-APP -p Query="safe=TEST-SAFE;folder=root;object=**$f1**" -p RequiredProps=Address,UserName -o Password,PassProps.UserName
done < extractiontest.csv
我得到以下输出:
TEST-SAFE.dev-pwd -p RequiredProps=地址,用户名 -o 密码,PassProps.UserNameT-APP -p 查询=安全=TEST-SAFE;文件夹=根;对象=TEST-SAFE.dev-pwd TEST-SAFE.prd-pwd -p RequiredProps=地址,用户名 -o 密码,PassProps.UserNameT-APP -p Query=safe=TEST-SAFE;folder=root;object=TEST-SAFE.prd-pwd
似乎在变量之后的字符串部分正在覆盖变量之前的字符串部分并一直到它。
我尝试将字符串分隔为多个变量,并尝试将它们一个接一个地连接起来。
我尝试用 XXX 替换字符串,然后这样做:
stri="${originalstring//XXX/${f1}}"
echo $stri
我试过eval。
我尝试过单引号和双引号的不同组合
我什至尝试将命令作为 csv 文件中的一行。
不能让它工作...... :(
帮助? :)
非常感谢!
【问题讨论】:
-
看看editing-help,尤其是代码格式化。
标签: linux bash variables command substitution