Linux下获取当前的目录,需执行以下命令: $(cd `dirname $0`;pwd) 其中, dirname $0,取得当前执行的脚本文件的父目录 cd `dirname $0`,进入这个目录(...切换当前工作目录) pwd,显示当前工作目录(cd执行后的) 在使用的过程中需注意此事项: 命令中“`”不是英文的单引号,而是英文输入法下的“~”同一个按键下面的那个符号。
问: 如何从Bash脚本本身中获得其所在的目录? 我想使用Bash脚本作为另一个应用程序的启动器。我想把工作目录改为Bash脚本所在的目录,以便我可以对该目录下的文件进行操作,像这样: $ ..../application 答: 咱们容易想到的方法是使用 dirname "$0"。 #!...: [$(dirname "$0")]" echo "pwd : [$(pwd)]" 测试结果如下: 可以满足提问者的需求。.../usr/bin/env bash script_dir=$(cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd) echo...为什么我不能在脚本中使用"cd"来更改目录 为什么在可执行文件或脚本名称之前需要.
/bin/bash -x script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" echo script dir is "dir.../get_cur_dir.sh +++ dirname ..../get_cur_dir.sh ++ cd . ++ pwd + script_dir=/media/sf_share/git/bash_practice + echo script dir is '<.../bin/bash script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" echo script dir is "dir.../get_cur_dir.sh script dir is $ sh .
/bin/bash script_dir=$(dirname "$0") echo "Script directory: $script_dir" 这种方法适用于大多数情况,但它有一个缺点:如果脚本是通过符号链接调用的.../bin/bash script_dir=$(dirname "${BASH_SOURCE[0]}") echo "Script directory: $script_dir" BASH_SOURCE.../bin/bash script_dir=$(dirname "$(realpath "$0")") echo "Script directory: $script_dir" realpath 可以解析符号链接.../bin/bash caller_dir=$(pwd) echo "Caller directory: $caller_dir" 这个方法使用 pwd 命令获取当前工作目录,也就是调用脚本的位置。.../bin/bash # 获取脚本所在位置 script_dir=$(dirname "${BASH_SOURCE[0]}") # 获取调用者所在位置 caller_dir=$(pwd) echo "
这里大概分为四小部分: 分别为:BASH_SOURCE,cd,dirname,pwd BASH_SOURCE:我们先看里面的,这个是当前脚本的文件的路径。...BASH_SOURCE[0]存放的路径数据。 dirname:取出后面命令的路径部分 cd 这个就很简单了,进入dirname取出该脚本的路径的上一层(因为后面有一个/.....,所以是上一层) pwd:这个是获得当前路径。 &&:这个的意思就是前面的执行完了才执行后面的。 这句话总的意思就是,获取该脚本的上一级的路径。...我先说说$0,$1,$2等,这里的$0表示这个这个脚本本身,$1,$2分别表示第一个参数,第二个参数。那么我们来看这个命令。.../dir1/dir2/dir3 如果此时没有dir1那么之后的都建立不了,如果用 mkdir -p ./dir1/dir2/dir3 就可以啦。没有的都会自己创建。 下一句 ?
="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # full path of the script.sh (including the name) __...file="${__dir}/$(basename "${BASH_SOURCE[0]}")" # name of the script __base="$(basename ${__file} .sh...)" # full path of the parent folder __root="$(cd "$(dirname "${__dir}")" && pwd)" # <-- change this as...|| exit 1 echo "Pip location:" pip_cmd=$(command -v pip) echo "$pip_cmd" current=$(pwd) pip_path="$current...干货:RabbitMQ核心概念及工作原理 埋头三天才把冷热分离二期实现思路:冷数据存放到HBase给搞懂 2022年软件开发的趋势 Nomad正在接管Kubernetes吗 MIT协议分布式文件系统
/bin/bash root_dir=$HOME/data/VOCdevkit/ sub_dir=ImageSets/Main bash_dir="$(cd "$(dirname "${BASH_SOURCE...[0]}")" && pwd)" for dataset in trainval test do dst_file=$bash_dir/$dataset.txt if [ -f $dst_file...修改caffe-ssd/data/VOC2007/create_data.sh如下: create_data.sh cur_dir=$(cd $( dirname ${BASH_SOURCE[0]}...) && pwd ) root_dir=$cur_dir/../.....cd $root_dir redo=1 data_root_dir="$HOME/data/VOCdevkit" dataset_name="VOC2007" mapfile="$root_dir/data
对于原有环境变量,yocto修改了下面几个环境变量: OLDPWD:记录脚本运行前的工作目录; PATH:修改执行程序搜索路径,这样就可以在后续操作中运行bitbake等命令; PWD:记录脚本运行后的工作目录...下面是oe-init-build-env源码: if [ -n "$BASH_SOURCE" ]; then THIS_SCRIPT=$BASH_SOURCE elif [ -n "$ZSH_NAME..." ]; then THIS_SCRIPT=$0 else THIS_SCRIPT="$(pwd)/oe-init-build-env" fi if [ -n "$BBSERVER" ]...$THIS_SCRIPT'" exit 1 fi if [ -z "$OEROOT" ]; then OEROOT=$(dirname "$THIS_SCRIPT") OEROOT.../scripts/oe-setup-builddir || { unset OEROOT return 1 } unset OEROOT [ -z "$BUILDDIR" ] || cd
1、进入网站目录,克隆仓库代码 1 2 3 4 cd /www/wwwroot/ git clone http://192.168.3.141:8099/liujuncheng/test.git test...chown -R www:www test 2、设置git自动更新的钩子文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 cd.../bin/bash #获取当前目录 DIR_NAME=$( cd $(dirname $BASH_SOURCE) && pwd) #创建数组,根据/进行分割 array=(${DIR_NAME//// ...s_value=${array[${#array[*]}-2]} #创建数组,根据.进行分割 array2=(${s_value//./ }) #获取第一个元素 s2_value=${array2[0]
/usr/bin/env bash set -Eeuo pipefail trap cleanup SIGINT SIGTERM ERR EXIT script_dir=$(cd "$(dirname... "${BASH_SOURCE[0]}")" &>/dev/null && pwd -P) usage() { cat <<EOF Usage: $(basename "${BASH_SOURCE...Get the location script_dir=$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd -P) 这行代码尽其所能定义脚本的位置目录...,然后我们对其进行cd配置。...因此,如果脚本从同一目录中读取某个文件或执行另一个程序,请按如下方式调用: cat "$script_dir/my_file" 同时,脚本不会更改工作目录的位置。
/bin/bash -eDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" centos_version="$(cat $DIR/version...-t quay.io/kubevirtci/centos8language-bash复制代码 ( cd "{BASH_SOURCE[0]}" )" && pwd )获取当前脚本的绝对路径给变量DIR,dirname..." cat $DIR/version | tr -d '\n'将version文件的内容去掉换行符,复制给变量centos_version,变量centos_version在后边的Dockerfile...stream/BaseOS/x86_64/os/images/pxeboot/vmlinuz COPY scripts/* / 基础镜像是fedora,dnf在fedora中相当于centos中的yum,工作目录是.../,将脚本文件夹scripts里的脚本都复制到工作目录,下载dockerize到工作目录,dockerize可以做成下面的ssh小工具,在ssh执行命令前先用dockerize判断下22端口是否能在timeout
一旦你完成脚本的构建,并且 可以保证脚本能正常工作,那你就可以将它分配给其它主机。 回过头来再对比下,如果你没有使用快照功能了?...此文件会包含在后续的scriptlet中: THIS_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" " ...&& pwd )" source $THIS_DIR/set-env-1.sh 如果你没有在第一时间获取set-env.sh会怎么样呢?...解决方案是创建一个新的文件set-env-1.sh包含: THIS_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" ..." && pwd )" source $THIS_DIR/set-env.sh if !
/bin/sh CUR_DIR=`dirname $BASH_SOURCE` export CATALINA_BASE=`readlink -f $CUR_DIR` export CATALINA_HOME.../bin/sh CUR_DIR=`dirname $BASH_SOURCE` export CATALINA_BASE=`readlink -f $CUR_DIR` export CATALINA_HOME.../bin/sh CUR_DIR=`dirname $BASH_SOURCE` export CATALINA_BASE=`readlink -f $CUR_DIR` export CATALINA_HOME.../bin/sh CUR_DIR=`dirname $BASH_SOURCE` export CATALINA_BASE=`readlink -f $CUR_DIR` export CATALINA_HOME...-8090]# cd webapps/ROOT/ [root@lyx ROOT]# cp -a index.jsp index1.jsp [root@lyx ROOT]# rm -rf index.jsp
常见的一种误区,是使用 pwd 命令,该命令的作用是“print name of current/working directory”,这才是此命令的真实含义,当前的工作目录,这里没有任何意思说明,这个目录就是脚本存放的目录.../bin/bashthis_dir=`pwd`echo "$this_dir ,this is pwd"echo "$0 ,this is \$0"dirname $0|grep "^/" >/dev/...base_dir=$(cd "$(dirname "$0")";pwd) dirname $0 ,取得当前执行的脚本文件的父目录 cd dirname $0 ,进入这个目录(切换当前工作目录) pwd...,显示当前工作目录(cd执行后的) 我今天遇到一个问题就是: 需要压缩备份一个目录下的所有的文件,其实代码就2行: 我还是贴全部的吧,最后2行是我的: #!.../bin/bash this_dir=`pwd` echo "$this_dir ,this is pwd" echo "$0 ,this is \$0" dirname $0|grep "^/" >/
准备工作: 安装Tomcat 安装Maven 安装Git 安装Jdk Tomcat下Jenkins安装: Jenkins的安装与设置 选择war包下载 http://my-tech.oss-cn-hangzhou.aliyuncs.com...Credentials添加自己Git仓库的账号名和密码,选择分支(默认master) 构建中Goals and options填入clean install 点击构建右下角的高级,选择使用自定义的工作空间...-SNAPSHOT.jar /home/web/myblog #切换到启动目录 cd /home/web/myblog #执行脚本,重启项目 ..../bin/bash cd `dirname $0` CUR_SHELL_DIR=`pwd` CUR_SHELL_NAME=`basename ${BASH_SOURCE}` #修改这里jar包名即可 JAR_NAME...-d "$LOG_DIR" ];then mkdir "$LOG_DIR" fi if [ !
1、准备工作 安装elasticsearch-jdbc,其依赖jvm环境,事先要准备好jvm环境。.../bin/sh DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" bin=${DIR}/../bin lib=${DIR}/.....若对目标索引有特殊要求,比如某些字段不进行analyze等,可提前建立好索引及映射机制,再使用脚本进行数据导入工作。
原有项目里自带的启动脚本用到了bash_source获取脚本名称,最后使用如下方式启动程序。....: No such file or directory之类的错误 参考线上脚本写了一个测试shell 名为testbashsource this="${BASH_SOURCE-$0}" echo $this...bin=`dirname "$0"` echo $bin bin=`cd "$bin"; pwd` echo $bin APP_HOME=`dirname "$bin"` echo $APP_HOME.../vol/collector/bin /vol/collector 由上可知${BASH_SOURCE-$0}这种用法在使用./testbashsource方式启动的时候得到的值是....同样可以注意到的在用到pwd命令后获得的绝对路径都是一样的,所以以后再使用路径的时候尽量还是都用绝对路径这种方法更安全可靠一点。
/bin/bash cd `dirname $0` CUR_SHELL_DIR=`pwd` CUR_SHELL_NAME=`basename ${BASH_SOURCE}` #项目名 JAR_NAME...=$CUR_SHELL_DIR/logs LOG_PATH=$LOG_DIR/${JAR_NAME%..log echo_help() { echo -e "syntax: sh $CUR_SHELL_NAME...-d "$LOG_DIR" ];then mkdir "$LOG_DIR" fi if [ !...nohup java $JAVA_MEM_OPTS -jar $SPRING_PROFILES_ACTIV $JAR_PATH >> $LOG_PATH 2>&1 & COUNT=0...for PID in $PIDS; do kill $PID > /dev/null 2>&1 done COUNT=0 while [ $COUNT -lt
[0]}" while [ -h "$source" ] ; do local linked="$(readlink "$source")" local dir=..."$(cd -P $(dirname "$source") && cd -P $(dirname "$linked") && pwd)" source="$dir/$(basename..."$linked")" done (cd -P "$(dirname "$source")/.." && pwd) } KOTLIN_HOME="$(findKotlinHome)"...kotlin命令脚本如下: export KOTLIN_RUNNER=1 DIR="${BASH_SOURCE[0]%/*}" : ${DIR:="."}...当然这些配置依赖库,执行程序等等的工作是由Eclipse Kotlin插件完成的。
键把程序退到后台等几秒让app自己生成日志文件 下面开始讲步骤 步骤1: 拉取项目代码 git clone XXXXXXXXXXX 步骤2: 编辑Podfile文件, 添加XcodeCoverage库 打开终端, cd...NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]...把上面第4步拷贝的所有.gcda文件拷贝到第六步打开的目录中 步骤7:生成覆盖率报告 打开终端, cd进入项目目录/Pods/XcodeCoverage, 运行命令: ..../bin/sh DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source ${DIR}/envcov.sh ALL_COVERAGE...} $INFO_DIR/$ALL_COVERAGE cd ${REPORT_DIR} echo "open index.html====================" open index.html
领取专属 10元无门槛券
手把手带您无忧上云