还有的在shell脚本下面的部分,我正在写:不同的行为在bash字符串比较,而在函数内部
(查看最新的目录中someDir
这是不summary/
)
latestDirName=""
for dirName in `ls -lt /user/someDir/ | head -3 | tail -n +2 | awk '{print $9}'`
do
if [ "$dirName" == "summary" ]; then
continue
fi
latestDirName=$dirName
done
这里$dirname
抵抗串summary
比较,而dirName
变量的迭代期间的回波将打印为summary/
该比较当代码写入文件并执行时,部分工作正常。
但是,一旦这个相同的代码放入一个函数并放在我的bashrc中,在if
检查中的比较似乎不起作用!
这是否与字符串是一个目录名称有关,或者它有/
?
当相同的代码在一个函数内时,它会产生什么不同?
代码内的bashrc:
findLatestDir()
{
latestDirName=""
for dirName in `ls -lt /user/someDir/ | head -3 | tail -n +2 | awk '{print $9}'`
do
if [ "$dirName" == "summary" ]; then
continue
fi
latestDirName=$dirName
done
}
脚本被称为如下:
情况#1(在文件中的代码):$ ./findLatestDir.sh
情况#2(在bashrc中功能):$ findLatestDir
'继续'对我来说没有意义 – hek2mgl
请发布代码,演示如何创建和调用函数,并演示您正在观察的错误行为。 – chepner
hek2mgl为什么? chepner更新了问题的完整细节 – eternalthinker