У меня есть базовый скрипт, который запускается внутри другого скрипта. Я звоню mass_split.sh
, который затем вызывает split_file.sh
. splite_file.sh
принимает два аргумента -s file_name.txt
и -c 1
(сколько фрагментов для вырезания файла). Однако я пытаюсь запустить цикл, чтобы найти все текстовые имена файлов в каталоге ./
, а затем ввести результаты в cut_file.sh
. Я не получаю никаких результатов, а затем текстовые файлы не разделяются.Запуск скрипта внутри цикла - имена файлов эха
mass_split.sh
#!/bin/bash
for f in ./*.txt
do
sudo bash split_file.sh -s echo "file '$f'"; -c 10
done
Ваше использование 'sudo bash [script] ...' указывает мне, что вы не 1) устанавливаете исполняемый файл сценария или 2) используете магический shebang, иначе он будет читать 'sudo ./split_file.sh. ..'. (применяется к split_file.sh, а не mass_split.sh, который мы видим для shebang для) – Wug
Вам не нужна эхо-часть. Я бы предложил в цикле for следующее: вместо того, что у вас есть: 'sudo bash split_file.sh -s $ f -c 10' –
' '-c10' после команды'; 'will return: не найден. Drop ';' Кроме того, когда я исключаю 'bash split_file.sh ...' (потому что у меня нет этой команды или кода), она отлично списывает файлы. Вы также можете показать код для 'split_file.sh'. Это может помочь. – thom