Bash 创建具有不同路径的壳

Bash 创建具有不同路径的壳,bash,shell,environment-variables,Bash,Shell,Environment Variables,我想编写一个脚本,在实例化时创建一个具有不同路径变量的新shell。也就是说,我不希望每次启动新脚本时都必须运行配置脚本。我只希望shell的初始化有一个新的。我该怎么做 在细节方面,我将运行一些测试,这些测试需要使用默认包的修改版本。我想在一个新的shell中运行这些测试,以避免更改默认路径变量 谢谢 脚本1.sh: 脚本2.sh: 脚本1使用作为参数传递的参数调用脚本2。使用以下命令运行脚本1 /脚本1.sh 它在第一个会话中导出script1的变量,在新会话中运行script2并独立于第一

我想编写一个脚本,在实例化时创建一个具有不同路径变量的新shell。也就是说,我不希望每次启动新脚本时都必须运行配置脚本。我只希望shell的初始化有一个新的。我该怎么做

在细节方面,我将运行一些测试,这些测试需要使用默认包的修改版本。我想在一个新的shell中运行这些测试,以避免更改默认路径变量

谢谢

脚本1.sh:

脚本2.sh:

脚本1使用作为参数传递的参数调用脚本2。使用以下命令运行脚本1

/脚本1.sh

它在第一个会话中导出script1的变量,在新会话中运行script2并独立于第一个环境变量启动其他环境变量


希望这能有所帮助。

如果您在Linux/Mac上运行, 您可以这样使用它:

path='something_new' run_command
其中run_命令是您的测试脚本。 运行:

对于Mac或:

path='something_new' env | grep path
对于Linux


确保它为您工作。

您希望为同一台机器或不同的机器创建新会话吗?在同一台机器上创建新会话。我设想它是这样的:$./new\u shell new\u shell$./tests创建一个脚本,它调用另一个脚本并参数化新会话的路径。因此,当您调用它们时,新会话将用新路径实例化。所以,想法是使用主包装器脚本调用脚本。是的,这就是目标。但是,我不知道如何参数化路径。我知道如何在BASH脚本中使用参数,只是不知道如何使用这些参数设置新shell的路径。非常感谢。您的两个grep示例存在问题。set或env的选择与操作系统无关。这两个命令做不同的事情。env是一个显示环境变量的外部二进制文件。从POSIX样式的shell(如/bin/sh或bash)运行时,它将显示导出的内容。从tcsh运行时,它将显示使用setenv设置的内容。set命令在tcsh中的行为与在POSIX中完全不同,您可以在Mac、Linux、FreeBSD、AIX等中运行任何shell。
path='something_new' run_command
path='something_new' set | grep path 
path='something_new' env | grep path