如何替换shell脚本中的特定参数值



我正在运行一个shell脚本,它是许多作业的常见启动脚本。它接受5-9个参数。在某些情况下,我会得到一个字符串'/'作为参数,而在某些情况中,我可能不会得到它

现在,每当我将'/'作为参数时,都需要将其替换为'usr/pwd@sid'。我是shell脚本的新手。有人能帮我如何检查参数和替换参数吗?

例如:startup_test.sh DEV filepath test.log sqlplus -S -L / @ sample_test.sql

我将这些值保存为$1,$2...$9,然后执行sqlplus来运行参数中给定的sql。

此外,由于它是一个常见的脚本,"/"作为参数出现的位置也会发生变化。

我尝试使用"if"条件检查每个参数,并将其替换为'usr/pwd@sid'。但这是一个很长的剧本。所以请帮我处理这个

以下是将任何参数"/"替换为"usr/pwd@sid".我不是贝壳专家,所以不是很整洁。

#!/bin/ksh
args=( "$@" )
for ((i=0; i < $#; i++)) ;do
if [ "${args[$i]}" == "/" ]; then
args[$i]="usr/pwd@sid"
fi
done
set "${args[@]}"
# verify that it worked
echo "$0 $1 $2 $3 $4 $5"

输出:

$ ./test.sh a b c / d
./test.sh a b c usr/pwd@sid d

最新更新