# حل مشكلة "zsh: no matches found" عند تشغيل مهمة rake

**URL:** https://meta.discourse.org/t/solving-zsh-no-matches-found-error-when-running-rake-task/148011
**Category:** Development
**Tags:** dev-news
**Created:** [14 أبريل 2020، 8:15م UTC](https://meta.discourse.org/t/solving-zsh-no-matches-found-error-when-running-rake-task/148011 "2020-04-14T20:15:07Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)
#### Post date: [14 أبريل 2020، 8:15م UTC](https://meta.discourse.org/t/solving-zsh-no-matches-found-error-when-running-rake-task/148011/1 "2020-04-14T20:15:07Z")

</div>

تُرفق macOS الآن `zsh` كغلاف افتراضي، مما يعني أن هذه المشكلة تظهر بشكل متكرر.

في `zsh`:

```plaintext
% bin/rake plugin:spec[discourse-solved]
zsh: no matches found: plugin:spec[discourse-solved]

```

> **لماذا يحدث هذا؟**
>
> السبب في ذلك هو أن الأقواس المربعة تُفسَّر على أنها [نمط glob](http://zsh.sourceforge.net/Doc/Release/Expansion.html#glob-operators). في bash، يفشل نمط glob في التطابق مع أي شيء، لكن الأمر ينفذ على أي حال ويعمل. أما في `zsh`، فيتم رفع خطأ ولا يتم تنفيذ `rake`.
> 
> ولتوضيح ذلك، في bash:
> 
> ```plaintext
> ○ → echo bin/rake plugin:spec[discourse-solved]
> bin/rake plugin:spec[discourse-solved]
> 
> ○ → touch plugin:specd
> 
> ○ → echo bin/rake plugin:spec[discourse-solved]
> bin/rake plugin:specd
> 
> ```
> 
> يمكنك تكرار سلوك zsh بتفعيل خيار `failglob` في bash:
> 
> ```plaintext
> ○ → echo bin/rake plugin:spec[discourse-solved]
> bin/rake plugin:spec[discourse-solved]
> 
> ○ → shopt -s failglob
> 
> ○ → echo bin/rake plugin:spec[discourse-solved]
> bash: no match: plugin:spec[discourse-solved]
> 
> ```
> 
> (شكرًا لـ @j.jaffeux و @pmusaraj على توجيهي في الاتجاه الصحيح، ولـ @supermathie على أمثلة bash 😍)

لجعل الأمر يعمل كما هو متوقع، يجب عليك وضع حجة rake كاملة بين علامات اقتباس

```plaintext
% bin/rake "plugin:spec[discourse-solved]"

```

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [15 أبريل 2020، 4:22م UTC](https://meta.discourse.org/t/solving-zsh-no-matches-found-error-when-running-rake-task/148011/2 "2020-04-15T16:22:28Z")

</div>

> [@david](#):
>
> يأتي نظام macOS الآن مع `zsh` كغلاف افتراضي،

أوه، يبدو أن هذا سيسبب الكثير من المتاعب للأشخاص الذين لا يحتمل أن يكون لديهم أي فكرة عن كيفية تحديد المشكلة. نأمل أن يجدوا هذا الموضوع.

---

<div class="post-metadata">

### Author: ![Stephen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/stephen/32/95011_2.png) [@Stephen](https://meta.discourse.org/u/Stephen)
#### Post date: [16 أبريل 2020، 3:15ص UTC](https://meta.discourse.org/t/solving-zsh-no-matches-found-error-when-running-rake-task/148011/3 "2020-04-16T03:15:39Z")

</div>

الأمر مقبول إلى حد كبير – يمكن للسكريبتات ببساطة تحديد bash لتجنب أي متاعب.

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [16 أبريل 2020، 3:02م UTC](https://meta.discourse.org/t/solving-zsh-no-matches-found-error-when-running-rake-task/148011/4 "2020-04-16T15:02:00Z")

</div>

> [@ستيفن، مشاركة:3، موضوع:148011](#):
>
> يمكن للسكريبتات ببساطة تحديد bash لتجنب أي ألم.

صحيح بما يكفي. أعتقد أن هذا هو السبب في أن جميع سكريبتات `bash` الخاصة بي تبدأ بـ `#!/usr/bin/env bash` على الرغم من أنني لا أتوقع أن تعمل على جهاز Mac أبدًا 😉

---

<div class="post-metadata">

### Author: ![gerhard](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/gerhard/32/119479_2.png) [@gerhard](https://meta.discourse.org/u/gerhard)
#### Post date: [17 أبريل 2020، 1:36م UTC](https://meta.discourse.org/t/solving-zsh-no-matches-found-error-when-running-rake-task/148011/5 "2020-04-17T13:36:23Z")

</div>

أو، يمكنك إضافة اسم مستعار إلى ملف تكوين ZSH الخاص بك. 🙂  
هذا يعمل على Linux، لذا من المرجح أن يعمل على macOS أيضًا.

```plaintext
alias rake='noglob rake'

```
