cd:shell脚本中的错误替换

cd:shell脚本中的错误替换,shell,unix,glob,cd,Shell,Unix,Glob,Cd,错误 这是第455行: ./sample.sh[245]: cd: bad substitution 这个问题是*。如果没有*,它可以工作 BSOld=`cd /opt/siebel/15.0.0.0.0/ses/siebsrvr/webmaster*;ls -lrt | grep *srf* | tail -1 | awk '{print $9}'` 错误消息中报告的行号不一定是实际导致语法错误的行号——通常是在前面一点。构建一个经过测试的脚本,当它由不是你的人自己运行时,它会复制错误。此

错误

这是第455行:

./sample.sh[245]: cd: bad substitution

这个问题是
*
。如果没有
*
,它可以工作

BSOld=`cd /opt/siebel/15.0.0.0.0/ses/siebsrvr/webmaster*;ls -lrt | grep *srf* | tail -1 | awk '{print $9}'`

错误消息中报告的行号不一定是实际导致语法错误的行号——通常是在前面一点。构建一个经过测试的脚本,当它由不是你的人自己运行时,它会复制错误。此外,你会注意到,如果你运行它,即使你的一行代码也会提供很多反馈--你应该运行整个脚本,并修复它找到的所有内容。(不是特定错误的原因,但请注意,
grep*srf*
通常根本不起作用;只需
grep srf
查找该子字符串即可——但如果要查找与模式匹配的最新或最旧文件,请参阅以获取最佳做法).BTW,将通配符传递给
cd
通常是不好的形式。如果
siebsrvr
中有多个以
webmaster
开头的目录,您预计会发生什么情况?
BSOld=`cd /opt/siebel/15.0.0.0.0/ses/siebsrvr/webmaster;ls -lrt | grep *srf* | tail -1 | awk '{print $9}'`