Ошибка при поиске: 'cd: команда не найдена' - PullRequest
0 голосов
/ 15 апреля 2020

Что-то не так с моими find ... while l oop. Я пытаюсь найти все папки, начинающиеся с Hello . В каждой папке Hello есть папка 0 , поэтому я хочу перейти в эту папку. Но что-то должно быть не так:

find -maxdepth 1 -name "Hello.*" -type d|while read dir
do
  cd "$dir"/0/
  pwd 
  resourcenfolder=$(ls -d *)
  scp -oStrictHostKeyChecking=no -r ${WORKSPACE}/"$resourcenfolder" root@${TARGET_IP}:/var/navdb/hwr/MS8/
  cd ../..
done

Я получаю действительно странную ошибку. Это первый cd сразу после do:

cd: command not found

1 Ответ

0 голосов
/ 16 апреля 2020

Я рекомендую использовать Bash for-loop для упрощения GLOBing и subhell для упрощения операции change-dir. Попробуйте это:

for dir in Hello*; do
   (cd "$dir"/0/; for resource in *; do
      scp -oStrictHostKeyChecking=no -r ${WORKSPACE}/"$resource" root@${TARGET_IP}:/var/navdb/hwr/MS8/
    done)
done

Предостережения: значение TARGET_IP кажется разумным. Но я обеспокоен тем, что переменная WORKSPACE не имеет особого смысла ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...