我正在运行一个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