【发布时间】:2020-03-06 16:56:03
【问题描述】:
错误
./sample.sh[245]: cd: bad substitution
这是第 455 行:
BSOld=`cd /opt/siebel/15.0.0.0.0/ses/siebsrvr/webmaster*;ls -lrt | grep *srf* | tail -1 | awk '{print $9}'`
【问题讨论】:
-
错误消息中报告的行号不一定是实际导致语法错误的行——它通常稍早一些。构建一个 minimal reproducible example,该 minimal reproducible example 经测试可在由非您本人自行运行时重现该错误。
-
另外,您会注意到,如果您通过shellcheck.net 运行它,即使您的一行也会提供很多反馈——您应该运行整个脚本,并修复它找到的所有内容。
-
(不是您的特定错误的原因,但请注意
grep *srf*通常根本不起作用;只需grep srf查找该子字符串 - 但如果您想找到与模式匹配的最新或最旧文件,请参阅 BashFAQ #3 了解最佳做法)。 -
顺便说一句,将通配符传递给
cd通常是错误的形式。如果siebsrvr中有多个以webmaster开头的目录,您会发生什么?