Mac添加全局变量

在MAC中安装flutter时,永久设置全局变量,文档要求在terminal中执行如下代码,但失败了。

bash 复制代码
cat &#x3C;<eot>> ~/.zprofile
export PUB_HOSTED_URL="https://pub.flutter-io.cn"
export FLUTTER_STORAGE_BASE_URL="https://storage.flutter-io.cn"
export PATH="$PWD/flutter/bin:$PATH"
EOT

指出错误

这里吐槽flutter文档中代码含有错误,&#x3C;是HTML 实体编码,对应的实际字符是<(小于号),在显示时经过了 HTML 转义。所以正确的代码应该这样,直接执行即可,如果没报错,本文后面的内容可以不看。

bash 复制代码
cat <<EOT >> ~/.zprofile
export PUB_HOSTED_URL="https://pub.flutter-io.cn"
export FLUTTER_STORAGE_BASE_URL="https://storage.flutter-io.cn"
export PATH="$PWD/flutter/bin:$PATH"
EOT

语法解释

cat <<EOT >> ~/.zprofile 是 Shell 中的一种语法,用于向文件中批量写入内容。其中的符号含义如下:

  • << 重定向输入符号,用于指定 "嵌入文档" 的开始,作用是指定一段多行文本作为命令的输入。也就是告诉shell,接下来的输入不是来自键盘或文件,而是紧随其后的 "多行文本"。
  • >> 重定向输出符号。>> file.txt表示向文件追加内容(在文件末尾添加新内容,不覆盖原有内容);> file.txt表示向文件写入内容(会覆盖文件原有内容,如果文件不存在则创建)。
  • EOT 是一个分隔符,用来标记文本内容的开始和结束(可以替换为任意字符串,比如 EOF、END 等,只要前后一致即可)。结束的 EOT 必须单独占一行,且前后不能有多余字符(包括空格)
  • cat 本身的核心功能是读取文件内容并输出(cat 是 "concatenate" 的缩写,原意是连接多个文件内容),如 cat file.txt表示显示 file.txt 的内容

所以整个语法的作用是:把 <<EOT 和 EOT 之间的所有内容,追加写入到后面的文件(这里是 ~/.zprofile)中

这种语法的好处是可以一次性写入多行内容,无需手动打开文件编辑,适合脚本自动化操作。

其他事项

  • $PWD 是一个环境变量,表示当前工作目录(Present Working Directory)的绝对路径。
  • $PATH 是一个环境变量,它存储了系统用来查找可执行程序的目录列表。而 :(冒号)是这些目录之间的分隔符。:$PATH:表示 "在原有 PATH 变量的基础上添加新路径"(避免覆盖已有的配置)
相关推荐
第二只羽毛9 分钟前
C++ 高并发内存池1
大数据·开发语言·c++·开源
不想看见40417 分钟前
C++/Qt 实习岗位深度解析【结合一次研发实习谈感受】
开发语言·c++·qt
sjmaysee35 分钟前
Java框架SpringBoot(一)
java·开发语言·spring boot
寒秋花开曾相惜37 分钟前
(学习笔记)3.8 指针运算(3.8.3 嵌套的数组& 3.8.4 定长数组)
java·开发语言·笔记·学习·算法
想唱rap1 小时前
Linux线程
java·linux·运维·服务器·开发语言·mysql
Tony Bai1 小时前
Rust 看了流泪,AI 看了沉默:扒开 Go 泛型最让你抓狂的“残疾”类型推断
开发语言·人工智能·后端·golang·rust
njidf1 小时前
C++与Qt图形开发
开发语言·c++·算法
qwehjk20081 小时前
代码动态生成技术
开发语言·c++·算法
是翔仔呐1 小时前
第11章 显示外设驱动:I2C协议OLED屏、SPI协议LCD屏字符/图片/中文显示
c语言·开发语言·stm32·单片机·嵌入式硬件·学习·gitee
jason成都1 小时前
IoT 设备监控系统实战:基于 EMQX 的 MQTT 连接监控与数据格式指纹识别
开发语言·python