shell-函数名不能为linux关键字

举例:

执行如下脚本,运行ok:

#!/bin/bash

source ./env.sh
scp -i ${KEY} -r ${BASE_PATH} ${SLAVE_IP}:/usr/local > /dev/null 2>&1

执行如下脚本,运行fail,报错:Segmentation fault (core dumped)

#!/bin/bash

source ./env.sh
function scp()
{
    scp -i ${KEY} -r ${BASE_PATH} ${SLAVE_IP}:/usr/local > /dev/null 2>&1
}
scp

问题: 为什么同样的命令,放在function里面执行会报错

scp是一个关键词,换成其他字符试试呢,scp改成cp_dir

#!/bin/bash

source ./env.sh
function cp_dir()
{
    scp -i ${KEY} -r ${BASE_PATH} ${SLAVE_IP}:/usr/local > /dev/null 2>&1
}
cp_dir

结果运行ok,说明函数名不能为shell的关键词

猜你喜欢

转载自www.cnblogs.com/liurong07/p/12569369.html