Dan*_*okh 6 linux bash shell command-line macos
我有一个文件:
/Users/danylo.volokh/test/test_bash_script.sh
Run Code Online (Sandbox Code Playgroud)
内容很简单:
#!/usr/bin/env bash
echo "-- print from script"
Run Code Online (Sandbox Code Playgroud)
我在文件夹“danylo.volokh”中
此命令运行良好:
Danilos-MacBook-Pro:~ danylo.volokh$ test/test_bash_script.sh
-- print from script
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试使用绝对路径运行,则会出现错误:
Danilos-MacBook-Pro:~ danylo.volokh$ /test/test_bash_script.sh
-bash: /test/test_bash_script.sh: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我想从任何文件夹运行具有绝对路径的命令并获取要执行的脚本。
Dav*_*ill 16
如果我尝试使用绝对路径运行,则会出现错误:
/test/test_bash_script.sh
-bash: /test/test_bash_script.sh: No such file or directory
Run Code Online (Sandbox Code Playgroud)
文件/test/test_bash_script.sh不存在,因此无法执行。
绝对路径定义为从根目录 ( /)指定文件或目录的位置。
/test不能是绝对路径,因为该目录/test 不存在(它是您的主目录的子目录)。
你有两个选择:
使用脚本的正确绝对路径:
/Users/danylo.volokh/test/test_bash_script.sh
Run Code Online (Sandbox Code Playgroud)使用基于您的主目录的路径:
~/test/test_bash_script.sh
Run Code Online (Sandbox Code Playgroud)绝对路径定义为从根目录 (
/)指定文件或目录的位置。
由于斜杠总是分隔名称组件,如果路径名以斜杠开头,则假定无名的“ROOT”目录开始路径名。ROOT 目录没有名称。它是整个 Unix 文件系统树的根。
以斜杠开头的路径名称为绝对路径名,因为它总是从 ROOT 开始。
因为没有名字的目录很难说,所以我们通常(错误地)为ROOT目录使用名字“/”(斜线)。这是错误的,因为路径名的名称组件不能包含斜杠和斜杠分隔名称组件。了解当我们使用“/”作为 ROOT 时,我们真正的意思是“斜线左侧的无名 ROOT 目录”,而不是斜线本身。
| 归档时间: |
|
| 查看次数: |
44918 次 |
| 最近记录: |