gpt4 book ai didi

linux - linux不能用分号设置环境变量

转载 作者:行者123 更新时间:2023-12-04 18:59:20 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





When should I wrap quotes around a shell variable?

(6 个回答)


去年关闭。




我正在尝试在 ubuntu 上使用分号设置此环境变量:
BS_DATABASE_CONNECTION=connection;Data Source=source;Initial Catalog=catalog;Persist Security Info=info;User ID=userid;Password=password;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;
但我得到这些错误:
数据:找不到命令
初始:找不到命令
坚持:找不到命令
用户:找不到命令
我该如何正确设置?

最佳答案

问题是 ;被视为控制运算符,字符串 BS_DATABASE_CONNECTION=connection;Data Source=source;...被解释为多个命令。第一个是命令BS_DATABASE_CONNECTION=connection ,第二个是命令Data Source=source等。一种解决方案是使用引号:

BS_DATABASE_CONNECTION='connection;Data Source=source;Initial Catalog=catalog;Persist Security Info=info;User ID=userid;Password=password;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;'
但是对于这么长的值,执行以下操作可能更具可读性:
BS_DATABASE_CONNECTION="\
connection;\
Data Source=source;\
Initial Catalog=catalog;\
Persist Security Info=info;\
User ID=userid;\
Password=password;\
MultipleActiveResultSets=False;\
Encrypt=True;\
TrustServerCertificate=False;\
"
或者
BS_DATABASE_CONNECTION=''
for x in 'connection' \
'Data Source=source' \
'Initial Catalog=catalog' \
'Persist Security Info=info' \
'User ID=userid' \
'Password=password' \
'MultipleActiveResultSets=False' \
'Encrypt=True' \
'TrustServerCertificate=False' \
; do
BS_DATABASE_CONNECTION="${BS_DATABASE_CONNECTION}${x};"
done
或者
read BS_DATABASE_CONNECTION << EOF
connection;\
Data Source=source;\
Initial Catalog=catalog;\
Persist Security Info=info;\
User ID=userid;\
Password=password;\
MultipleActiveResultSets=False;\
Encrypt=True;\
TrustServerCertificate=False;
EOF
或者
BS_DATABASE_CONNECTION=$( tr \\n \; << EOF
connection
Data Source=source
Initial Catalog=catalog
Persist Security Info=info
User ID=userid
Password=password
MultipleActiveResultSets=False
Encrypt=True
TrustServerCertificate=False
EOF
)
请注意,这不是环境变量。它只是一个 shell 变量。如果您希望它处于子shell 环境中,则应将其导出。是否在 shell 的环境中应该是完全不相关的,环境变量和导出的 shell 变量之间没有功能上的区别。

关于linux - linux不能用分号设置环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67505935/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com