“Nenhum tal arquivo” com ksh, mas o script é executado com ksh -x?

1

Estou tentando executar um script de shell no OpenBSD 5.7 / amd64. É um script de teste usado para testar um projeto FOSS. (O OpenBSD é um dos nossos alvos porque fornece um compilador antigo pronto para uso).

Quando tento executar o script:

$ ./cryptest.sh        
ksh: ./cryptest.sh: No such file or directory

No entanto, se eu adicionar -x para depuração, o script pode ser encontrado magicamente:

$ ksh -x ./cryptest.sh 
+ TEST_RESULTS=cryptest-result.txt
+ ADD_CXXFLAGS=
+ uname -s
+ grep -i -c darwin
+ IS_DARWIN=0
+ uname -s
+ grep -i -c linux
+ IS_LINUX=0
+ uname -s
+ grep -i -c cygwin
+ IS_CYGWIN=0
+ uname -s
+ grep -i -c mingw
+ IS_MINGW=0
+ [ -z  ]
+ [ 0 -ne 0 ]
+ [ 0 -ne 0 ]
+ [ 0 -ne 0 ]
+ [ 0 -ne 0 ]
+ -x c++ -dM -E -std=c++11 -
...

Descompactei o CEP com -aoq . Eu verifiquei a propriedade, as permissões, etc. Eu o executei por dos2unix para uma boa medida. Eu até forneci go+rx para tentar executá-lo. Todas as coisas que sei verificar (que são poucas) parecem estar corretas.

Alguém pode explicar o que está acontecendo?

    
por jww 27.10.2015 / 23:16

2 respostas

1

Seu shell tentou e falhou ao executar o shell especificado na primeira linha (shebang) de cryptest.sh. É capaz de encontrar o ksh muito bem, que é então capaz de executar o seu script.

    
por 28.10.2015 / 01:51
1

O caminho para ksh na primeira linha do arquivo não corresponde ao caminho para ksh em seu sistema.

Edite o arquivo para refletir a realidade e o script será iniciado conforme o esperado.

    
por 31.10.2015 / 01:30