源 bash 文件不工作,仍然要求变量或不工作

source bash file doesnt work, still asks for variables or doesnt work

我在使用 source ./admin-openrc.sh 文件为 kn apply(云集群创建者应用程序)获取变量时遇到问题。

但它似乎不起作用。

然后当我尝试在同一行中使用 source 命令时,它 运行 什么也没有,并给我一条黑线。

shell 文件的内容:

    export OS_AUTH_URL=http://192.168.1.200/identity
# With the addition of Keystone we have standardized on the term **project** as the entity that owns the resources.
export OS_PROJECT_ID=995dadc5b03d4b02a1cf5a94b430f3fd
export OS_PROJECT_NAME="admin"
export OS_USER_DOMAIN_NAME="Default"
if [ -z "$OS_USER_DOMAIN_NAME" ]; then unset OS_USER_DOMAIN_NAME; fi
export OS_PROJECT_DOMAIN_ID="default"
if [ -z "$OS_PROJECT_DOMAIN_ID" ]; then unset OS_PROJECT_DOMAIN_ID; fi
# unset v2.0 items in case set
unset OS_TENANT_ID unset OS_TENANT_NAME
# In addition to the owning entity (tenant), OpenStack stores the entity performing the action as the **user**.
export OS_USERNAME="admin"
# With Keystone you pass the keystone password.
# echo "Please enter your OpenStack Password for project $OS_PROJECT_NAME as user $OS_USERNAME: " read -sr OS_PASSWORD_INPUT
export OS_PASSWORD=Admin00
# If your configuration has multiple regions, we set that information here. OS_REGION_NAME is optional and only valid in
# certain environments.
export OS_REGION_NAME="RegionOne"
# Don't leave a blank variable, unset it if it was empty
if [ -z "$OS_REGION_NAME" ]; then unset OS_REGION_NAME; fi
export OS_INTERFACE=public
export OS_IDENTITY_API_VERSION=3

我已经尝试将权限更改为 777,因为 shell 文件可能无法执行或无法执行,但无济于事。

谁能帮我解决这个问题?

命令 kn apply 正在 运行 sudo 下(使用新环境作为 Root)。但是,您是在标准用户环境中应用源代码。

有几种方法可以解决这个问题

a) 获取脚本后,使用 sudo -E kn apply 保护环境,但这取决于您的 sudo 配置/安全策略。

b) 运行 Sudo 环境中的源代码(我个人更喜欢这种方法)

sudo -- bash -c "source /home/administrator/devstack/admin-openrc.sh ; kn apply"