sh 获取执行shell脚本的当前路径(.bat比较简单 %cd% 获取当前路径)
#!/bin/sh
if [ "$0" = "bash" ]; then
cd "$(dirname "$BASH_SOURCE")"
CUR_FILE=$(pwd)/$(basename "$BASH_SOURCE")
CUR_DIR=$(dirname "$CUR_FILE")
cd - > /dev/null
else
echo "$0" | grep -q "$PWD"
if [ $? -eq 0 ]; then
CUR_FILE=$0
else
CUR_FILE=$(pwd)/$0
fi
CUR_DIR=$(dirname "$CUR_FILE")
fi
echo $CUR_DIR
v2 脚本在使用linux定时任务运行时路径有问题,简单修改为
#!/bin/sh
echo $(java -version)
if [ "$0" = "bash" ]; then
cd "$(dirname "$BASH_SOURCE")"
CUR_FILE=$(pwd)/$(basename "$BASH_SOURCE")
CUR_DIR=$(dirname "$CUR_FILE")
cd - > /dev/null
else
echo "$0" | grep -q "$PWD"
CUR_FILE=$0
CUR_DIR=$(dirname "$CUR_FILE")
fi
echo $CUR_DIR
cd $CUR_DIR
CONF_DIR=$CUR_DIR/conf/application.conf
echo $CONF_DIR
shell 批量向文件中增加指定修改
for a in "`ls *.txt`"; do echo "1111" >> "$a" ; done //增加111
for a in "`ls *.xml`"; do echo " " >> "$a" ; done //增加空格