Essa parte do script definitivamente funciona, o que você pode descobrir facilmente executando este script de teste:
#/bin/sh
cd
IncompleteDirName="ment"
cd *"${IncompleteDirName}"*
date > testFile
A primeira linha é o shebang. A segunda linha muda para o seu diretório pessoal. Deve haver uma pasta chamada Documents . A terceira linha define a variável IncompleteDirName como substring de Documents . A quarta linha é copiada do seu script. A quinta linha grava os dados atuais no arquivo testFile na localização atual.
Você verá um arquivo testFile na sua pasta Documents .
O problema provavelmente é algo diferente em seu script, como Rakesh Sharma já apontou em sua resposta ou como você a usa. Acho que esses são cenários prováveis:
- Existem caracteres parecidos ou iguais. Por exemplo,
Αé um alfa maiúsculo, não um latinoA. Se você pesquisarAnesta página e destacar todos os resultados,Aserá realçado, masΑnão. Da mesma forma, pode não haver uma correspondência porque o que você considera uma subcadeia do nome de um diretório não é, na verdade, uma subseqüência do nome desse diretório. - A capitalização é importante. Se você vem do mundo do Windows, a capitalização não importa. Você pode ter um diretório chamado
Aecd a(ou qualquer que seja o equivalente do Windows) para entrar nesse diretório. No lado negativo, ter um diretório chamadoAem um sistema Windows significa que você não pode ter um diretório chamadoano mesmo diretório. Em um sistema Unix, isso não se aplica.cd ~/documentsprovavelmente falhará em sua máquina (a menos que você tenha um diretório chamadodocumentsem sua pasta pessoal) porque a primeira letra não está em maiúscula.
Mas, como você pode ver no meu script de exemplo, essa parte do script definitivamente funciona.