【问题标题】:Powershell not sourcing .profilePowershell 没有采购 .profile
【发布时间】:2015-05-12 01:04:46
【问题描述】:
 New-SshSession -ComputerName cagent01 
 $A= Invoke-SshCommand -InvokeOnAll -Quiet -Command '~/.bash_profile'
 $B= Invoke-SshCommand -InvokeOnAll -Quiet -Command '~/.bashrc'
 $Result = Invoke-SshCommand -InvokeOnAll -Quiet -Command './start'
 $Ora = Invoke-SshCommand -InvokeOnAll -Quiet -Command 'echo $ORACLE_HOME'
 write-host "Oracle home is $Ora"
 Remove-SshSession -RemoveAll

我使用 PowerShell v3。这个脚本没有采购我的 .profile。 我没有看到 $Ora 打印任何价值。

当我手动登录服务器执行 echo $PATH 时,它包含 ORACLE 路径

回显 $PATH

/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/data/app/oracle/product/11.2.0/d‌​bhome_1/bin:/home/HEALTHLANGUAGE/scmbuild /bin:/home/db2inst1/sqllib/bin:/home/db2‌​inst1/sqllib/adm:/home/db2inst1/sqllib/misc

.bash_profile 确实导出了 PATH 变量。 导出路径

当我在这个代理上运行竹计划时,它说 ORACLE_HOME 没有设置。手动登录到服务器源路径正确,但我想使用脚本来做。

有人可以帮我解决吗?还是不能使用适用于 Linux 服务器的 PowerShell 来做到这一点?

【问题讨论】:

  • 你确定这些命令在同一个远程shell会话中执行吗?我不会默认情况下假设。如果在一个命令中将它们全部串在一起,你会得到你期望的输出吗? . ~/.bash_profile; . ~/.bashrc; echo "$ORACLE_HOME"?
  • 试过这个但没有用。 $A= Invoke-SshCommand -InvokeOnAll -Quiet -Command '。 ~/.bash_profile; . ~/.bashrc; echo "$ORACLE_HOME" '
  • 你有没有从中得到任何输出? $ORACLE_HOME 是否设置在其中一个文件中?
  • 我试过这个 $Z = Invoke-SshCommand -InvokeOnAll -Quiet -Command 'echo $PATH' 并得到所需的输出“路径是 /usr/kerberos/bin:/usr/local/bin: /bin:/usr/bin" 这只是 ORACLE_HOME 没有得到来源
  • 该路径几乎肯定是由系统 shell 初始化文件设置的,而不是您的用户 shell 初始化文件。但是手动加载用户 shell 初始化文件(就像我之前的命令一样)应该可以正常工作。

标签: powershell .profile


【解决方案1】:

我在我的 .bashrc 中获取 /etc/profile 并将该更改合并到新快照中。它现在就像一个魅力。非常感谢您提供的所有宝贵意见

【讨论】:

    猜你喜欢
    • 2015-07-09
    • 2020-10-11
    • 2020-09-24
    • 1970-01-01
    • 2020-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-16
    相关资源
    最近更新 更多