bash中PATH=$PATH:$SYNPLIFY_HOME/bin的作用,为什么不用export命令
时间: 2023-06-01 19:06:47 浏览: 47
这是将SYNPLIFY_HOME/bin目录添加到系统PATH环境变量中的一种方式。当你在终端中输入一个命令时,系统会在PATH环境变量中的所有目录中查找可执行文件,如果找到了就执行,否则就提示命令不存在。使用export命令是将PATH变量导出为环境变量,使得该变量对于所有子进程都是可见和操作的。在某些情况下,不需要把PATH变量导出到整个系统环境,可以只在当前的shell进程中使用,因此可以不用export命令。
相关问题
#!/bin/bash test "$BASH_SOURCE" = "" && echo "This script can be sourced only from bash" && return SCRIPT_SOURCE=$BASH_SOURCE test "$SCRIPT_SOURCE" = "$0" && echo "Script is being run, should be sourced" && exit 1 SCRIPT_DIR=$(dirname "${SCRIPT_SOURCE}") ZEEKR_BASE=$(cd "${SCRIPT_DIR}"; pwd) ZEEKR_TARGET=$ZEEKR_BASE/target/ ZEEKR_PROTO_IDL_PATH=$ZEEKR_TARGET/usr/idl ZEEKR_BIN_PATH=$ZEEKR_TARGET/aarch64/usr/bin ZEEKR_LIB_PATH=$ZEEKR_TARGET/aarch64/usr/lib ZEEKR_INCLUDE_PATH=$ZEEKR_TARGET/usr/include ZEEKR_CMAKE_INSTALL_PATH=$ZEEKR_TARGET/aarch64/usr/cmake ZEEKR_PROTOC_EXEC=$ZEEKR_BASE/host/protoc/protoc ZEEKR_PREBUILD=$ZEEKR_TARGET/aarch64/prebuild MAKEFLAGS=-I$ZEEKR_TARGET/usr/include PATH=$ZEEKR_TARGET/aarch64/usr/bin:$ZEEKR_TARGET/aarch64/usr/lib:$PATH export ZEEKR_TARGET ZEEKR_PROTO_IDL_PATH ZEEKR_BIN_PATH ZEEKR_LIB_PATH ZEEKR_INCLUDE_PATH ZEEKR_CMAKE_INSTALL_PATH ZEEKR_PREBUILD ZEEKR_PROTOC_EXEC MAKEFLAGS PATH echo ZEEKR_PROTO_IDL_PATH=$ZEEKR_PROTO_IDL_PATH echo ZEEKR_BIN_PATH=$ZEEKR_BIN_PATH echo ZEEKR_LIB_PATH=$ZEEKR_LIB_PATH echo ZEEKR_INCLUDE_PATH=$ZEEKR_INCLUDE_PATH echo ZEEKR_CMAKE_INSTALL_PATH=$ZEEKR_CMAKE_INSTALL_PATH echo ZEEKR_PROTOC_EXEC=$ZEEKR_PROTOC_EXEC echo ZEEKR_PREBUILD=$ZEEKR_PREBUILD #Do not edit past this line
这是一个Bash脚本,主要用于设置环境变量和路径。它会将一些路径和变量设置为全局变量,以便在后续的脚本中使用。
以下是一些设置的路径和变量:
- `ZEEKR_BASE`:脚本所在的基础路径。
- `ZEEKR_TARGET`:目标路径。
- `ZEEKR_PROTO_IDL_PATH`:IDL文件的路径。
- `ZEEKR_BIN_PATH`:二进制文件的路径。
- `ZEEKR_LIB_PATH`:库文件的路径。
- `ZEEKR_INCLUDE_PATH`:头文件的路径。
- `ZEEKR_CMAKE_INSTALL_PATH`:CMake安装路径。
- `ZEEKR_PROTOC_EXEC`:protoc执行文件的路径。
- `ZEEKR_PREBUILD`:预构建文件的路径。
最后,脚本会输出设置的路径和变量,以供检查使用。
请注意,这段脚本中有一些特定于环境和项目的设置,可能需要根据具体情况进行调整。
MAIN_ROOT=$PATH_TO_YOUR_ESPNET_FOLDER # path to your espnet folder KALDI_ROOT=$MAIN_ROOT/tools/kaldi # path to your kaldi folder export PATH=$PWD/utils/:$KALDI_ROOT/tools/openfst/bin:$PATH [ ! -f $KALDI_ROOT/tools/config/common_path.sh ] && echo >&2 "The standard file $KALDI_ROOT/tools/config/common_path.sh is not present -> Exit!" && exit 1 . $KALDI_ROOT/tools/config/common_path.sh export LC_ALL=C详细解释并注释上述代码
这段代码是一个 Bash 脚本,主要用于设置环境变量和导入路径。下面是对每一行的详细解释和注释:
```bash
MAIN_ROOT=$PATH_TO_YOUR_ESPNET_FOLDER # path to your espnet folder
```
将 `$PATH_TO_YOUR_ESPNET_FOLDER` 路径赋值给 `MAIN_ROOT` 变量,这个路径应该是你的 espnet 文件夹的路径。
```bash
KALDI_ROOT=$MAIN_ROOT/tools/kaldi # path to your kaldi folder
```
将 `$MAIN_ROOT/tools/kaldi` 路径赋值给 `KALDI_ROOT` 变量,这个路径应该是你的 Kaldi 文件夹的路径。
```bash
export PATH=$PWD/utils/:$KALDI_ROOT/tools/openfst/bin:$PATH
```
将 `$PWD/utils/` 和 `$KALDI_ROOT/tools/openfst/bin` 路径添加到 `PATH` 环境变量中。
```bash
[ ! -f $KALDI_ROOT/tools/config/common_path.sh ] && echo >&2 "The standard file $KALDI_ROOT/tools/config/common_path.sh is not present -> Exit!" && exit 1
```
检查 `$KALDI_ROOT/tools/config/common_path.sh` 文件是否存在,如果不存在则输出错误信息并退出脚本。
```bash
. $KALDI_ROOT/tools/config/common_path.sh
```
导入 `$KALDI_ROOT/tools/config/common_path.sh` 文件中定义的路径。
```bash
export LC_ALL=C
```
将 `LC_ALL` 环境变量设置为 `C`,这可以帮助避免在处理文本数据时出现编码错误。