Problema ao executar um script

0

Eu criei um script no diretório / home / prashast . Eu criei outro diretório dentro de / home / prashast chamado TestDirectory . Eu tenho vários arquivos dentro de / home / prashast / TestDirectory . Ao executar um script do diretório / home / prashast , ele não está efetuando os arquivos em / home / prashast / TestDirectory .

#!/bin/bash
for f in $(ls /home/prashast/TestDirectory/); do
     mv "$f.txt" "$f.text";
done
    
por Prashast 13.08.2017 / 09:22

1 resposta

6

Não analise ls result , use este código.

for f in /home/prashast/TestDirectory/*; do
    echo mv "$f" "${f%.*}.text";
done

O ${f%.*} que usamos é uma expressão de expansão do parâmetro shell (cut-up-to-first-suffix); descarte do início ao início do nome do arquivo até o primeiro . visto.

Leia o capítulo sobre Expansão do parâmetro do shell Bash para saber mais.

    
por 13.08.2017 / 09:25