
bash shell编程--函数调用--帮忙(add 20ps)
#!/bin/bashrename(){ARGS=2E_BADARGS=85ONE=1#Forgettingsingular/pluralright(seebelow)....
#! /bin/bash
rename()
{
ARGS=2
E_BADARGS=85
ONE=1 # For getting singular/plural right (see below).
if [ $# -ne "$ARGS" ]
then
echo "Usage: `basename $0` old-pattern new-pattern"
# As in "rn gif jpg", which renames all gif files in working directory to jpg.
exit $E_BADARGS
fi
number=0 # Keeps track of how many files actually renamed.
for filename in *$1* #Traverse all matching files in directory.
do
if [ -f "$filename" ] # If finds match...
then
fname=`basename $filename` # Strip off path.
n=`echo $fname | sed -e "s/$1/$2/"` # Substitute new for old in filename.
mv $fname $n # Rename.
let "number += 1"
fi
done
if [ "$number" -eq "$ONE" ] # For correct grammar.
then
echo "$number file renamed."
else
echo "$number files renamed."
fi
exit 0
}
while true
read ch
do
case $ch in
rename) rename;;
esac
done
请问运行时怎么才能使rename()发挥作用?
./rename file1.txt file2.txt
没有效果,改变不了文件名呢?(rename后加了$f1 $f2也做不到),请执教! 展开
rename()
{
ARGS=2
E_BADARGS=85
ONE=1 # For getting singular/plural right (see below).
if [ $# -ne "$ARGS" ]
then
echo "Usage: `basename $0` old-pattern new-pattern"
# As in "rn gif jpg", which renames all gif files in working directory to jpg.
exit $E_BADARGS
fi
number=0 # Keeps track of how many files actually renamed.
for filename in *$1* #Traverse all matching files in directory.
do
if [ -f "$filename" ] # If finds match...
then
fname=`basename $filename` # Strip off path.
n=`echo $fname | sed -e "s/$1/$2/"` # Substitute new for old in filename.
mv $fname $n # Rename.
let "number += 1"
fi
done
if [ "$number" -eq "$ONE" ] # For correct grammar.
then
echo "$number file renamed."
else
echo "$number files renamed."
fi
exit 0
}
while true
read ch
do
case $ch in
rename) rename;;
esac
done
请问运行时怎么才能使rename()发挥作用?
./rename file1.txt file2.txt
没有效果,改变不了文件名呢?(rename后加了$f1 $f2也做不到),请执教! 展开
1个回答
展开全部
输入rename即可起作用,不过调用rename时应该带上参数,因为函数中$1和函数外的$1不是一回事。
rename $1 $2;;
rename $1 $2;;

2022-08-05 广告
苏州蓝晓生物科技有限公司。标准化核心产品:公司拥有完整的琼脂糖介质、葡聚糖介质、聚甲基丙烯酸酯介质生产线,年产分离介质50000L,产品质量稳定并达到国际领先水平。核心优势:公司核心技术人员拥有近二十年不同基质的基球开发和官能化的丰富技术经...
点击进入详情页
本回答由苏州蓝晓生物科技有限公司_提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询