首页 > 系统 > Linux > 正文

Linux Shell脚本编程的注意事项

2019-10-26 18:39:03
字体:
来源:转载
供稿:网友

一、常用技巧

代码如下:ssh user@server bash < /path/to/local/script.sh
#ssh到远程服务器执行一个脚本,此命令可以避免将脚本上传到远程服务器

ssh user@host cat /path/to/remotefile | diff /path/to/localfile -
#比较远程文件和本地文件的差异

vim scp://username@host//path/to/somefile
#vi一个远程文件

curl ifconfig.me
#在内网下查看公网ip

echo ${#a}
#取变量字符个数

FUNCNAME
#函数名变量,打印该变量会输出当前的函数名称

二.变量命名

1.变量命名前后规则统一
代码如下:COUNT=
Sum=
2.避免无含义字符或数字,例如下面的18,谁知道代表什么含义呢
代码如下:
#-------------------错误写法-------------------
if [[ $count -gt 18 ]]
then
commmand
fi
#----------------------------------------------

#-------------------正确写法-------------------
Process_Limit=18
if [[ $count -gt ${Process_Limit} ]]
then
commmand
fi
#----------------------------------------------

3.全局变量在脚本初始化的时候定义,一般是一些配置参数, 尽量少的使用全局变量
4.函数内的局部变量使用local声明
代码如下:
func_test_1()
{
local test=1
echo $test
}

5.变量合并
如果某些变量需要组合起来才有意义时,例如文件路径等,请将组合起来的值赋予一个变量,这样以后修改起来方便
代码如下:
log_dir=/opt/log
log_name=website.log
#-------------------错误写法-------------------
if [[ ! -f ${log_dir}/mam/${log_name} ]]
then
touch ${log_dir}/mam/${log_name}
fi
#----------------------------------------------

#-------------------正确写法-------------------
log_file=${log_dir}/${log_name}
if [[ ! -f ${log_file} ]]
then
touch ${log_file}
fi
#----------------------------------------------

6.异常判断,判断变量名是否存在,对于输入变量,还需要判断变量名的合法性
代码如下:
#-------------------错误写法-------------------
rm -rf ${path}/*
#----------------------------------------------

 
#-------------------正确写法-------------------
if [ -d "${path}" ]
then
rm -rf ${path}/*
fi
#----------------------------------------------

7.双中括号的使用[[ ]]
shell的双中括号有很多的作用
代码如下:
#----------------------------------------------
正则匹配
if [[ Yes =~ Y|y ]]
then
echo matched
fi
#----------------------------------------------

#----------------------------------------------
防止空变量,以下if判断,如果使用[]则会报错
if [[ $aaa == 1 ]]
then
echo matched
else
echo "no such variable"
fi
#----------------------------------------------

8.使用ctrl+n补齐变量名
如果变量名的命名比较长,手输入容易出错,复制又太麻烦,则可以使用ctrl+n补齐变量名

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表