Bash Can';不要在shell脚本中使用通配符

Bash Can';不要在shell脚本中使用通配符,bash,shell,wildcard,ls,Bash,Shell,Wildcard,Ls,这大概是我挣扎的三天 D1="`ls $g???_???_?????$DATE1`"" ` |`""` wc -l`" if [ $D1 -eq "0" ] 它仍然以语法错误结束。 bash告诉的最后一个语法错误是第1行的语法错误:“意外” 你能帮帮我吗?我不确定你想达到什么目的。但是,管道符号是替换命令的一部分,而不是其自身的替换命令 D1="`ls $g???_???_?????$DATE1 | wc -l`" if [ $D1 -eq 0 ]; then ... f

这大概是我挣扎的三天

D1="`ls $g???_???_?????$DATE1`"" ` |`""` wc -l`"
       if [ $D1 -eq "0" ]
它仍然以语法错误结束。 bash告诉的最后一个语法错误是第1行的语法错误:“意外”


你能帮帮我吗?

我不确定你想达到什么目的。但是,管道符号是替换命令的一部分,而不是其自身的替换命令

D1="`ls $g???_???_?????$DATE1 | wc -l`"
if [ $D1 -eq 0 ]; then
    ...
fi

这就是最终成功的原因:

D1=`ls 'a_costant_string'"$DATE1"????????"$g"* | sort -u | wc -l`
我在这里指的是它,因为我花了很多时间找到了正确的组合,而这实际上是正确的答案

请看。不要那样使用
ls
。要计数文件:
array=(“$g”?“$DATE1”);如果(${a[@]}==0))