【发布时间】:2017-12-04 22:23:32
【问题描述】:
我正在尝试安排我的 shell 脚本,但是当它触发处理计划任务时,会出现此错误提示。但是当没有文件被处理时,它只会显示 echo 命令。
这是我的代码:
if [ "$(ls -A $path)" ]
then
for file_name in "$path"/*; do
filebasename=$(basename "$file_name")
prefix=${filebasename:0:4};
if [ "$prefix" == "abcd" ] ; then
mv "$file_name" "$out"
fi
done
else echo "No files available at $path"
fi
这是错误:
SH:prefix=${filebasename:0:4}:0403-011 The specified substitution is not valid for this command
【问题讨论】:
-
${var:n:m}扩展在 /bin/sh 中不可用。您需要为此指定 ksh 或 bash。与==运算符相同。 -
嗨格伦谢谢你,但我该怎么办?我需要重构代码的语法吗?
-
您可以在脚本的第一行添加#!/bin/bash
-
您还有其他一些语法错误。将您的代码粘贴到 shellcheck.net 以获取更多提示
-
感谢@glennjackman