The*_*ent 8 shell scripting path shell-script
我需要运行一个脚本来访问它所在路径中的文件。
例如:我有脚本/home/me/folder/script.sh,这个脚本将访问文件/home/me/folder/myfile. 由于文件在脚本的同一路径中,我只使用 name myfile,而不是完整路径。
但是,如果我从 运行它/tmp/,例如:
/tmp$ /home/me/folder/script.sh
Run Code Online (Sandbox Code Playgroud)
它给了我:
myfile: No such file or directory
Run Code Online (Sandbox Code Playgroud)
那么,我如何在脚本中说该文件与脚本本身在同一路径中?
您无法在所有情况下都知道,但通常(并非总是)当您按路径运行脚本而不是让 shell 搜索时$PATH,脚本的路径将在$0. 然后您可以使用dirname "$0"或${0%/*}来获取路径。