Обычная идиома
for d in Parent_dir/*/
do
(cd "$d" && $command)
done
для Цикл
выполняется один раз для каждого каталога непосредственно в Parent_dir
. Для каждого из этих каталогов создается вспомогательная оболочка; во вспомогательной оболочке мы пытаемся перейти в этот каталог (что может привести к сбою, например, если у нас недостаточно прав), и, если нам это удалось, выполнить команду.Независимо от того, преуспели мы или нет, cd
не влияет на родительскую оболочку, поэтому нам не нужно беспокоиться о том, что мы оказались в неправильном месте.
Если вы хотите сделать его более надежным, вы можете
(cd "$d" && test -r acc.bam && $command)
убедиться, что acc.bam
существует и доступен для чтения в этом каталоге. Вы также можете добавить test -w.
, чтобы не пытаться выполнить команду в каталогах, недоступных для записи.
P.S. Ничего из вышеперечисленного не относится к Bash; вы можете использовать для этого / bin / sh вполне переносимо.
Добро пожаловать, пользователь 22600!
Вы можете попробовать использовать диммы декодирования -, которые поддерживают драйвер ee1004:
sudo apt-get install i2c-tools
sudo modprobe eeprom
sudo modprobe ee1004
decode-dimms|grep -A6 SPD
Однако, глядя на ваш конкретный список /sys/bus/i2c/drivers/ee1004, я не уверен, что модули правильно определяются ядром, что является предварительным -требованием любого инструмента.
После загрузки модуля ee1004 и проверки отсутствия возвращаемых ошибок я предлагаю проверить выходные данные dmesg:
судо dmesg
sudo dmesg -c
sudo modprobe eeprom
sudo modprobe ee1004
sudo dmesg