bash - 获取 bash 执行 bash 脚本的位置
问题描述
我希望能够使用~/script_name.sh
任何目录中的命令执行位于我的主目录中的 bash 脚本,然后在脚本中获取运行它的目录。
例如。我在目录/foo/bar/baz
中,然后执行/foo/script.sh
,它会打印出来/foo/bar/baz
pwd
和$0
/$BASH_SOURCE
分别给我我的 shell 开始的目录和我的主目录中脚本的路径。
解决方案
不要调用外部命令pwd
,而是考虑使用$PWD
。如果您想防止某些流氓代码显式更改PWD
,请先执行一个cd .
(这是一个内部命令),它会恢复PWD
到正确的值。
推荐阅读
- c++ - 三元运算符是否允许在 C++ 中计算两个操作数?
- react-native - React Native TypeError:无法读取未定义的属性'timeSlots'
- angular - Getting error "Property 'tpl' does not exist on type 'ListComponent'." using Angular material table
- django - Downloading file using HttpResponse throwing error as "body size is too long" for large files (>5MB)
- laravel - 如何将值插入查询?
- python - python pytesseract.image_to_string 无法读取图像中的文本
- python - 如何将 XG-Boost 与 PySPARK 一起使用
- postgresql - 替换 docker 容器中的 postgresql.conf
- pandas - 如何使用条件提取一行
- configuration - webrtc 配置以减少发送的流量