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ê pesquisarA
nesta página e destacar todos os resultados,A
será 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
A
ecd a
(ou qualquer que seja o equivalente do Windows) para entrar nesse diretório. No lado negativo, ter um diretório chamadoA
em um sistema Windows significa que você não pode ter um diretório chamadoa
no mesmo diretório. Em um sistema Unix, isso não se aplica.cd ~/documents
provavelmente falhará em sua máquina (a menos que você tenha um diretório chamadodocuments
em 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.