在公司网络中检查并设置.zshrc/.bashrc中的http(s)_代理

在公司网络中检查并设置.zshrc/.bashrc中的http(s)_代理,bash,proxy,zsh,Bash,Proxy,Zsh,我想在我的专用网络(使用专用计算机)和公司网络(使用公司计算机)中使用我的doftiles。目前我有 export http_proxy=http://proxy-company.com:8080 export https_proxy=$http_proxy 在我的.zshrc/.bashrc文件中,但这会导致在我的家庭网络中使用我的私人计算机时出现问题 有没有办法检测到我在公司网络中,然后在.zshrc/.bashrc文件(伪代码)中执行类似操作 编辑: 这似乎对我有用(感谢@Philipp

我想在我的专用网络(使用专用计算机)和公司网络(使用公司计算机)中使用我的doftiles。目前我有

export http_proxy=http://proxy-company.com:8080
export https_proxy=$http_proxy
在我的.zshrc/.bashrc文件中,但这会导致在我的家庭网络中使用我的私人计算机时出现问题

有没有办法检测到我在公司网络中,然后在.zshrc/.bashrc文件(伪代码)中执行类似操作

编辑:

这似乎对我有用(感谢@Philippe和@mattst)


谢谢你的帮助

有很多方法可以做到这一点。我个人可能会使用
hostname
命令

#!/bin/bash

hostname=$(hostname)
if [ "$hostname" = "CompanyComputersHostName" ]; then
    echo "Do what you want"
fi
根据您的情况,Philippe关于检查特定目录是否存在的建议是完全合理的,尽管我倾向于创建一个文件(可能是隐藏的)并检查是否存在

#!/bin/bash

if [ -f "~/.incompany" ]; then
    echo "The ~/.incompany file exists"
fi

if [ -d "~/DirName" ]; then
    echo "The ~/DirName directory exists"
fi
编辑:

根据您的评论,您可以检查您的私人计算机,并假设任何不匹配的主机名必须是公司计算机之一

#!/bin/bash

host=$(hostname)

if [ "$host" = "Private_01" -o "$host" = "Private_02" -o "$host" = "Private_03" ]; then
    echo "This is one of the private computers"
else
    echo "This must be one of the company computers"
fi

有很多方法可以做到这一点。我个人可能会使用
hostname
命令

#!/bin/bash

hostname=$(hostname)
if [ "$hostname" = "CompanyComputersHostName" ]; then
    echo "Do what you want"
fi
根据您的情况,Philippe关于检查特定目录是否存在的建议是完全合理的,尽管我倾向于创建一个文件(可能是隐藏的)并检查是否存在

#!/bin/bash

if [ -f "~/.incompany" ]; then
    echo "The ~/.incompany file exists"
fi

if [ -d "~/DirName" ]; then
    echo "The ~/DirName directory exists"
fi
编辑:

根据您的评论,您可以检查您的私人计算机,并假设任何不匹配的主机名必须是公司计算机之一

#!/bin/bash

host=$(hostname)

if [ "$host" = "Private_01" -o "$host" = "Private_02" -o "$host" = "Private_03" ]; then
    echo "This is one of the private computers"
else
    echo "This must be one of the company computers"
fi


一个简单的方法是找到一个只存在于公司机器上的目录,
如果test-d只存在于公司…
@Philippe推测,这是用于改变网络的笔记本电脑,而不是只在一台或另一台网络上使用的电脑上的文件。@chepner同意,OP没有给出任何精确性。大多数公司不允许个人笔记本电脑连接到他们的公司网络。我们公司有一台存储工具的服务器,但默认情况下,该服务器不会安装到公司计算机上。是否可以在if语句中对此服务器/文件夹执行“ping”操作?一种简单的方法是找到一个仅存在于公司计算机上的目录,如果测试-d仅存在于公司中,则执行
@Philippe推测,这是用于更改网络的笔记本电脑,不是一个只在一个或另一个网络上使用的计算机上的文件。@chepner同意,OP没有给出任何精确性。大多数公司不允许个人笔记本电脑连接到他们的公司网络。我们公司有一台存储工具的服务器,但默认情况下,该服务器不会安装到公司计算机上。是否可以在if语句中对此服务器/文件夹执行“ping”操作?您的主机名不一定会因连接的网络而改变,您的文件系统也不一定会改变。@chepner实际上,问题已经编辑过,现在说相同的配置文件将在两台不同的计算机上使用;“专用网络(带专用计算机)和公司网络(带公司计算机)”。也许主机名是一种解决方案,但我有“许多不同的计算机”,这意味着我需要将每个主机名添加到点文件中?嗯,我个人不喜欢检查隐藏文件,因为还需要额外的步骤来添加此文件。@ge45mue您可以使用
主机名
检查您的私人计算机,并假设任何不匹配的主机名必须是公司计算机之一。我将编辑我的答案……您的主机名不一定会因您连接的网络而改变,您的文件系统也不一定会改变。@chepner事实上,问题已经编辑,现在说相同的配置文件将在两台不同的计算机上使用;“专用网络(带专用计算机)和公司网络(带公司计算机)”。也许主机名是一种解决方案,但我有“许多不同的计算机”,这意味着我需要将每个主机名添加到点文件中?嗯,我个人不喜欢检查隐藏文件,因为还需要额外的步骤来添加此文件。@ge45mue您可以使用
主机名
检查您的私人计算机,并假设任何不匹配的主机名必须是公司计算机之一。我将编辑我的答案。。。