Get the App
SLTechnology News&Howtos  ›  Development  › 

How to get the Shell script of the directory where the shell script is located

Shulou Source: shulou.com Published: 2022-06-03 09:20:46 09月17日 Update

This article mainly explains "how to get the Shell script in the directory where the shell script is located". The content in the article is simple and clear, and it is easy to learn and understand. Please follow Xiaobian's train of thought to study and learn "how to get the Shell script in the directory where the shell script itself is located".

Simple version

The following is the simplest implementation that can solve most problems, but the drawback is that for soft links, the directory where the soft links are located is displayed.

Lineos:false

The code is as follows:

#! / bin/bash

DIR= "$(cd" $(dirname "$0") "& & pwd)"

Perfect edition

This version solves the problem of using ln-s target linkName to create soft links that cannot correctly fetch real scripts.

Lineos:false

The code is as follows:

#! / bin/bash

SOURCE= "$0"

While [- h "$SOURCE"]; do # resolve $SOURCE until the file is no longer a symlink

DIR= "$(cd-P" $(dirname "$SOURCE") "& & pwd)"

SOURCE= "$(readlink" $SOURCE ")"

[[$SOURCE! = / *]] & & SOURCE= "$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located

Done

DIR= "$(cd-P" $(dirname "$SOURCE") "& & pwd)"

Thank you for your reading, the above is the content of "how to get the Shell script in the directory where the shell script itself is located". After the study of this article, I believe you have a deeper understanding of how to get the Shell script in the directory where the shell script is located, and the specific use needs to be verified in practice. Here is, the editor will push for you more related knowledge points of the article, welcome to follow!

Tags: Scripts locations directories links questions learning code content that is ideas situations articles more versions knowledge knowledge points articles defects follow practice Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno MariaDB Shulou Information Docker Apple MySQL