shell编程常用
字符串截取
- ${variable##*string} 从左向右截取最后一个string后的字符串
- ${variable#*string} 从左向右截取第一个string后的字符串
- ${variable%%string*} 从右向左截取最后一个string后的字符串
-
${variable%string*} 从右向左截取第一个string后的字符串:
ftp上传文件
ftp_upload(){
lftp -c "
set net:timeout 5;
set net:max-retries 3;
set net:reconnect-interval-multiplier 1;
set net:reconnect-interval-base 5;
open sftp://$ftp_server
user $ftp_username $ftp_password
cd $ftp_base
mkdir $1
cd $1
mput /opt/YUNYING/scripts/crontab/oracle/rmanback/$2/*
exit
"
set -euxo pipefail
-e: 当一个命令失败时,立即退出
-u: 遇到未定义的变量,报错并立即退出。
-x: 在执行每一个command之前打印出来。可以调试代码
-E: 'trap'用来在一个脚本中捕捉某些信号。除了一些常见的信号,'trap'可以用来捕捉一些特定信号,像EXIT,DEBUG, RETURN,ERR等
解析config文件
function readINI()
{
FILENAME=$1; SECTION=$2; KEY=$3
RESULT=`awk -F '=' '/\['$SECTION'\]/{a=1}a==1&&$1~/'$KEY'/{print $2;exit}' $FILENAME`
echo $RESULT
}
readINI 文件名 section option
ssh免密测试
function sshTest() {
ip=$1
user=$2
keyfile=$3
ssh -i $keyfile -o ConnectTimeout=3 -o PasswordAuthentication=no -o StrictHostKeyChecking=no $user@$ip hostname 1>/dev/null 2>&1
}