精华内容
下载资源
问答
  • linux获取shell脚本所在绝对路径操作介绍.docx
  • Linux中编写Shell脚本

    万次阅读 多人点赞 2018-10-08 11:22:35
    目录 Shell Shell脚本的执行 Shell脚本编写规范 Shell 中的变量 变量的算术运算 双小括号 (()) 数值运算命令的用法 let 运算命令的用法 expr 命令的用法 br 命令的用法 $[]符号的运算示例 Shell脚本的...
    展开全文
  • linux怎么运行脚本

    千次阅读 2021-02-23 15:11:40
    Linux中执行shell脚本的4种方法总结 Linux中执行shell脚本的4种方法总结,即在Linux中运行shell脚本的4种方法: 方法一:切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本: 复制代码 代码如下: ./hello...

    Linux中执行shell脚本的4种方法总结

    Linux中执行shell脚本的4种方法总结,即在Linux中运行shell脚本的4种方法:

    方法一:切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本:

    复制代码 代码如下:

    ./hello.sh

    ./的意思是说在当前的工作目录下执行hello.sh。如果不加上./,bash可能会响应找到不到hello.sh的错误信息。因为目前的工作目录 (/data/shell)可能不在执行程序默认的搜索路径之列,也就是说,不在环境变量PASH的内容之中。查看PATH的内容可用 echo $PASH 命令。现在的/data/shell就不在环境变量PASH中的,所以必须加上./才可执行。

    方法二:以绝对路径的方式去执行bash shell脚本:

    复制代码 代码如下:

    /data/shell/hello.sh

    方法三:直接使用bash 或sh 来执行bash shell脚本:

    复制代码 代码如下:

    bash hello.sh

    复制代码 代码如下:

    sh hello.sh

    注意,若是以方法三的方式来执行,那么,可以不必事先设定shell的执行权限,甚至都不用写shell文件中的第一行(指定bash路径)。因为方法三 是将hello.sh作为参数传给sh(bash)命令来执行的。这时不是hello.sh自己来执行,而是被人家调用执行,所以不要执行权限。那么不用 指定bash路径自然也好理解了啊,呵呵……。

    方法四:在当前的shell环境中执行bash shell脚本:

    复制代码 代码如下:

    . hello.sh

    复制代码 代码如下:

    source hello.sh

    前三种方法执行shell脚本时都是在当前shell(称为父shell)开启一个子shell环境,此shell脚本就在这个子shell环境中执行。shell脚本执行完后子shell环境随即关闭,然后又回到父shell中。而方法四则是在当前shell中执行的。

    查看哪个用户用的什么shell登录:

    1.echo $SHELL #查看当前登录的用户所用的shell 2.grep username /etc/passwd 看最後一段 #查看想要知道的用户登录所用的shell

    以上就是良许教程网为各位朋友分享的Linux相关知识。

    展开全文
  • 如何在Bash脚本中获取该脚本的源目录问题描述如何获得Bash脚本的源目录无软连接指向脚本有软连接指向脚本练习一下 问题描述   Bash(Bourne Again Shell)脚本通常用来启动一个程序,比如hadoop生态中的命令一般是都...

    问题描述

      shell 脚本通常用来启动一个程序,比如 hadoop 生态中的命令一般是都基于 shell 的。每次写 shell 都要到处去查这个问题,当然,你用绝对路径,那就没必要纠结这个问题了。在一次跟踪 Hive 启动脚本的时候,看到了一个链接,打开一看,竟然有1.5m的访问量,现在分享给大家,想看原文的可以点击这里

    如何获得shell脚本的源目录

    无软连接指向脚本

    DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
    

    无论在哪里调用包含了这行代码的shell脚本,都可以得到正确的脚本源目录。

    有软连接指向脚本

    #!/bin/bash
    
    SOURCE="${BASH_SOURCE[0]}"
    while [ -h "$SOURCE" ]; do # 直到$SOURCE不是软连接
      DIR="$( cd -P "$( dirname "$SOURCE" )" >/dev/null 2>&1 && pwd )"
      SOURCE="$(readlink "$SOURCE")"
      [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # 如果 $SOURCE(软连接) 指向的是一个相对地址,则需要将相对地址解析成绝对地址
    done
    DIR="$( cd -P "$( dirname "$SOURCE" )" >/dev/null 2>&1 && pwd )"
    

    这段脚本可以在有alias、source、bash -c、软连接等组合的情况下正确地给出Bash脚本的源目录。需要注意的是,如果在执行这段代码之前,先cd到了其它目录,那这个结果不正确了。
      此外,有两点需要注意:1.CDPATH(如果设置了CDPATH,cd一个目录时,首先查找CDPATH,如果CDPATH指明此目录,则此目录成为当前工作目录)。2.聪明的用户覆盖了cd命令将其输出重定向到stderr中,需要小心stderr的副作用(看字面是这么个意思,但真没这么用过)。

    练习一下

    #!/bin/bash
    SOURCE="${BASH_SOURCE[0]}"
    while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
      TARGET="$(readlink "$SOURCE")"
      if [[ $TARGET == /* ]]; then
        echo "SOURCE '$SOURCE' is an absolute symlink to '$TARGET'"
        SOURCE="$TARGET"
      else
        DIR="$( dirname "$SOURCE" )"
        echo "SOURCE '$SOURCE' is a relative symlink to '$TARGET' (relative to '$DIR')"
        SOURCE="$DIR/$TARGET" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
      fi
    done
    echo "SOURCE is '$SOURCE'"
    RDIR="$( dirname "$SOURCE" )"
    DIR="$( cd -P "$( dirname "$SOURCE" )" >/dev/null 2>&1 && pwd )"
    if [ "$DIR" != "$RDIR" ]; then
      echo "DIR '$RDIR' resolves to '$DIR'"
    fi
    echo "DIR is '$DIR'"
    

    输出结果类似下面的样子

    SOURCE './scriptdir.sh' is a relative symlink to 'sym2/scriptdir.sh' (relative to '.')
    SOURCE is './sym2/scriptdir.sh'
    DIR './sym2' resolves to '/home/ubuntu/dotfiles/fo fo/real/real1/real2'
    DIR is '/home/ubuntu/dotfiles/fo fo/real/real1/real2'
    
    展开全文
  • 方法: workdir=$(cd $(dirname $0); pwd) 步骤: dirname $0,取得当前执行的脚本文件的父目录 cd到父目录,即进入当前工作目录 pwd显示当前工作目录

    方法:
    dir=$(cd $(dirname $0); pwd)

    解析:
    dirname $0,取得当前执行的脚本文件的父目录
    cd到父目录,即进入当前工作目录
    pwd显示当前工作目录

    展开全文
  • Linux之shell脚本

    千次阅读 2018-11-29 15:38:43
    Shell是外壳的意思,就是操作系统的外壳,我们可以通过shell脚本来操作和控制操作系统,比如linux中的Shell命令就包括ls、cd、pwd等等。总结来说,Shell是一个命令解释器,他通过接受用户输入的Shell命令来启动、...
  • 使用脚本: BASE_PATH=$(cd `dirname $0`;pwd) echo "base_path is $BASE_PATH" 或者 DIR_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" ...
  • Linux 开机启动脚本

    千次阅读 2017-04-05 19:06:56
    系统脚本可以放置在/etc/rc.d/init.d中并建立/etc/rc.d/rc?.d链接,也可以直接放置在/etc/rc.d/rc.local中。 init.d脚本包含完整的start,stop,status,reload等参数,是标准做法,推荐使用。 为特定用户使用的程序...
  • Linux获取脚本所在的真实路径的父路径的绝对路径的正确写法
  • if [[ $0 =~ ^\/.* ]] #判断当前脚本是否为绝对路径,匹配以/开头下的所有 then script=$0 else script=$(pwd)/$0 fi script=`readlink -f $script` #获取文件的真实路径 script_path=${script%/*} #获取文件所在...
  • linuxshell脚本获取并进入当前目录

    万次阅读 2016-07-07 10:13:50
    linuxshell脚本获取并进入当前目录linux的shell中经常需要进入脚本当前所在的目录,以其为基准使用相对路径,那么怎样获取到这个路径呢? linux的shell中并没有一个变量能直接代表这个路径,需要自己使用命令来...
  • 而在 linux shell 脚本里面如果想得到当前脚本文件存放的绝对路径,也没有太现成的命令可以调用,不过可以通过下面的语句来获取: 代码如下: baseDirForScriptSelf=$(cd “$(dirname “$0″)”; pwd) echo “full ...
  • linux上使用bash XXX.sh执行脚本时,提示“for reading(No such file or directory)”。 问题原因: 因为操作系统是windows,在windows下编辑的脚本,所以有可能有不可见字符。脚本文件是DOS格式的 即每一行的行...
  • Linux常用shell脚本

    千次阅读 2017-12-01 17:34:14
    /bin/sh cp -R `find /home/data -type d -path /home/data/e -prune -o -print | sed 1d ` /bak chmod +x /home/osyunwei.sh #添加脚本执行权限 cd /home #进入脚本存放目录 ./osyunwei.sh #执行脚本 #############...
  • linux之shell脚本基础

    千次阅读 2020-02-15 09:42:42
    目录前言脚本的执行shell脚本书写规范管道与重定向shell脚本变量定义新变量read命令变量的作用范围特殊变量 前言 shell脚本就是将要执行的命令按顺序保存到一个文件中,并给该文件可执行权限,方便一次性执行的一...
  • linux定时执行脚本

    千次阅读 2017-12-21 15:07:45
    linux 定时执行shell脚本   在oracle 中可以利用dbms_job包定时执行pl/sql、sql过程,在像备份等需要在操作系统级定时任务只能采用crontab来完成 本文讲述crontab具体用法,以供备忘. 在oracle ...
  • Linux Shell下获取当前脚本绝对路径

    千次阅读 2016-01-05 11:27:11
    本文讲述了两种获取脚本路径时的常见错误,并提出了改进建议。
  • ![本人编写的代码,但是结果不对](https://img-ask.csdn.net/upload/201712/05/1512474537_598101.png)
  • Linux编写shell脚本执行多个命令

    千次阅读 2020-06-04 21:22:27
    Linux下编写shell脚本批量执行多个命令
  • linux中链接脚本ld文件详解

    万次阅读 2015-05-05 20:59:32
    今天在看uboot引导Linux部分,发现要对链接脚本深入了解,才能知道各个目标文件的内存分布映像,下面是我看到的一些资料 0. Contents 1. 概论 2. 基本概念 3. 脚本格式 4. 简单例子 5. 简单脚本命令 6. 对...
  • Linux Shell脚本监控目录内文件变化并自动scp方式备份 最近有个小项目,需要实时监测某文件夹的文件变化,当有变化时自动上传变化文件,在网上查找了大量的资料参考,加以改进最终达到了所需目的,在此分享出来,也...
  • Linux 命令行和shell脚本编程宝典(清晰绝对完整版).pdf,绝对完整的版本,清晰度比160多M的还要好一些,有完整书签,在CSDN上花8分下载了4个part,结果解压不了,超级郁闷。辛苦找到的这个真正完整的可以分享给大家...
  • 当前脚本绝对路径:readlink -m $0 readlink命令简介 Linux中的readlink命令用于打印解析的符号链接或规范文件名。用简单的话来说,只要我们有一个符号链接,我们就想知道它代表什么路径。然后,在这种情况下,将...
  • linux下编写脚本文件 .sh

    千次阅读 2020-08-25 15:17:42
    一 编写base.sh的脚本文件的过程。 1. touch base.sh //创建一个脚本文件 2.vim base.sh //打开脚本文件 3. 从键盘上输入字母 i 进入vim的插入模式(编辑模式) 4. //后面的的注释,只是为了方便记忆,运行时不能...
  • Linux下JMeter脚本如何运行?

    千次阅读 2017-07-21 23:01:23
    Linux 下如何执行Jmeter 脚本
  •  写shell脚本的过程中,有时会需要获取脚本的名字,比如,有的时候,脚本  中会有usage()这种函数,可能就会用到脚本的名字。 实现方法:  shell脚本中,通过使用$0就可以获取到脚本的名字或者说脚本本身。 ...
  • 2、修改去掉 ‘./’
  • 常见的一种误区,是使用 pwd 命令,该命令的作用是“print name of current/working directory”,这才是此命令的真实含义,当前的工作目录,这里没有任何意思说明,这个目录就是脚本存放的目录。所...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 81,866
精华内容 32,746
关键字:

linux绝对目录脚本

linux 订阅