2012-05-19 2 views
0

Это около 3 дней я борюсь снельзя использовать групповые символы в сценарии оболочки

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

и все это заканчивается с ошибкой синтаксиса. Последней синтаксической ошибкой bash является синтаксическая ошибка в строке 1: `| ' неожиданно.

Не могли бы вы помочь мне?

+0

См. [BashFAQ/050] (http://mywiki.wooledge.org/BashFAQ/050). И не используйте 'ls', как это. Для подсчета файлов: 'array = (" $ g "??? _ ??? _ ?????" $ DATE1 "); if (($ {# a [@]} == 0)) ' –

ответ

0

Это то, что в конце концов сработало:

D1=`ls 'a_costant_string'"$DATE1"????????"$g"* | sort -u | wc -l` 

Я meantion его здесь, потому что мне потребовалось много времени, чтобы найти комбинацию, которая работает правильно, и это было на самом деле правильный ответ.

2

Я не уверен, чего вы хотите достичь. Однако символ трубы является частью команды подстановки, а не собственной подстановочной командой.

D1="`ls $g???_???_?????$DATE1 | wc -l`" 
if [ $D1 -eq 0 ]; then 
    ... 
fi 
Смежные вопросы