Ubuntu中,请问shell程序问题
1.ofileName=#oldfilename,其中oldfilename被注释掉了吗?既然被注释了,那这句话的用处是什么?2.whilereadline是什么意思?3...
1.ofileName= # old file name ,其中old file name被注释掉了吗?既然被注释了,那这句话的用处是什么?
2.while read line 是什么意思?
3.index=`expr ${index} + 1`,请问是什么意思?
4.if [ ${index} -eq 1 ]是什么意思?
function change()
{
ofileName= # old file name
nfileName= #new file name
ls -l > a.txt
index=0
while read line
do
index=`expr ${index} + 1`
if [ ${index} -eq 1 ] ; then
continue; # ignore the first line of 'ls -l'
fi
a=($line)
#echo ${a[8]} the 9th element of array is file name
#echo ${a[3]} # the 3rd element of array is owner name
ofileName=${a[8]}
pos=`expr index ${ofileName} "."` # pos = the . position in file name
if [ ${pos} -eq 0 ] ; then # if no . in filename then nfileName=oldName+[+owner+]
nfileName="${ofileName}[${a[3]}]"
else
owner="[${a[3]}]."
nfileName="${a[8]/./${owner}} " # substitute the . character to the"[owner]."
fi
echo "nfilename=${nfileName}"
changename ${ofileName}${nfileName} #call function changename to change file name to new file name
done<a.txt
} 展开
2.while read line 是什么意思?
3.index=`expr ${index} + 1`,请问是什么意思?
4.if [ ${index} -eq 1 ]是什么意思?
function change()
{
ofileName= # old file name
nfileName= #new file name
ls -l > a.txt
index=0
while read line
do
index=`expr ${index} + 1`
if [ ${index} -eq 1 ] ; then
continue; # ignore the first line of 'ls -l'
fi
a=($line)
#echo ${a[8]} the 9th element of array is file name
#echo ${a[3]} # the 3rd element of array is owner name
ofileName=${a[8]}
pos=`expr index ${ofileName} "."` # pos = the . position in file name
if [ ${pos} -eq 0 ] ; then # if no . in filename then nfileName=oldName+[+owner+]
nfileName="${ofileName}[${a[3]}]"
else
owner="[${a[3]}]."
nfileName="${a[8]/./${owner}} " # substitute the . character to the"[owner]."
fi
echo "nfilename=${nfileName}"
changename ${ofileName}${nfileName} #call function changename to change file name to new file name
done<a.txt
} 展开
1个回答
展开全部
1.yes, declare
2.循环执行read读取一行数据,数据来源看倒数第2行,是从a.txt中获取的,而a.txt中的内容是ls的结果,read的内容放到变量line中
3.赋值表达式,使index值增1,等同于c中的index++。${index}是取变量值的操作,反引号(`)键盘的左上角,~下面,不要将其同单引号(’)混淆。反引号括起来的字符串被shell解释为命令行,在执行时,shell首先执行该命令行,并以它的标准输出结果取代整个反引号(包括两个反引号)部分
4.条件表达式,eq(equals)运算符判断左右两个值是否相等,就是一个if判断, 如果行号为1,略过(ls结果第一行一般是一个类似于”total xxxx”的输出)。
2.循环执行read读取一行数据,数据来源看倒数第2行,是从a.txt中获取的,而a.txt中的内容是ls的结果,read的内容放到变量line中
3.赋值表达式,使index值增1,等同于c中的index++。${index}是取变量值的操作,反引号(`)键盘的左上角,~下面,不要将其同单引号(’)混淆。反引号括起来的字符串被shell解释为命令行,在执行时,shell首先执行该命令行,并以它的标准输出结果取代整个反引号(包括两个反引号)部分
4.条件表达式,eq(equals)运算符判断左右两个值是否相等,就是一个if判断, 如果行号为1,略过(ls结果第一行一般是一个类似于”total xxxx”的输出)。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询