повторите цикл с командой переменных

rmmod 8139too не работает потому что также:

  • 8 139 поддержки встроена в ядро, и драйвер не может быть разгружен, потому что это не модуль. Во многих системах существует a /boot/config-2.6.38.8 файл (или подобный). Вы можете grep это для чего-то как ‘8139TOO’. Если Вы видите что-то как CONFIG_8139TOO=m, затем 8139too драйвер компилируется как модуль. Если это CONFIG_8139TOO=y, затем драйвер встроен в ядро. Если это говорит что-то вроде # CONFIG_8139TOO is not set, затем драйвер не был скомпилирован вообще.
  • Ваша плата Ethernet не использует микросхему RTL8139, таким образом, ее драйвер не загружается. Необходимо найти намеченный драйвер порта Ethernet и разгрузить тот вместо этого. Если Вы имеете lshw, сказать sudo lshw | less и ищите eth0: модуль драйвера будет перечислен. Если Вы имеете systool, попробовать sudo systool -c net -A uevent eth0 и ищите DRIVER= часть. Правая сторона должна показать драйвер, загруженный для обработки устройства. dmesg | grep eth0 может также работать, но это не на 100% надежно, особенно если Ваша система шла некоторое время (если существует a /var/log/dmesg, можно хотеть grep eth0 /var/log/dmesg также).
0
28.05.2013, 15:33
4 ответа

Вы, кажется, смущены какой echo делает. Вы не можете выполнить использование команд echo, не конкретно nohup. echo просто текст дисплеев, это не выполняет его.

Теперь, если я понимаю то, что Вы хотите сделать правильно, все, в чем Вы нуждаетесь, это:

#!/usr/bin/env bash
## As others have said, this is a better loop for your purposes
## and it avoids both useless uses of cat.
while read a
do         
    ## you don't need to copy the variable; you need the
    ## quotes to cope with names with spaces.    
    mkdir "$a"
    while read b
    do
      nohup ./tools $b $a >> "$a"/output &
    done < another_list_of_names
done < list_of_names
4
28.01.2020, 02:13
  • 1
    Linux, это выполнит $b один за другим или все одновременно? Поскольку то, что я пытался сделать, должно выполнить весь $b одновременно, вот почему я пытался использовать nohup. –  PoGibas 28.05.2013, 17:10
  • 2
    @Poe, который они выполнят параллельно, это что & (выполненный в фоне) в конце nohup делает. –  terdon♦ 28.05.2013, 17:11

Я сделал некоторые улучшения Вашего кода:

# This sort of loop is generally preferable to the one you had.
# This will handle spaces correctly.
while read a
do
   # There's no need for the extra 'echo'
   ID="$a"
   # Quote variables that may contain spaces
   mkdir "$ID"
   # This is a matter of taste, but I generally find heredocs to be more
   #  readable than long echo commands
   cat <<EOF
   nohup sh -c '
   while read b
   do
      # Quotation marks
      ./tools \$b $a >> "${ID}/output"
   done < another_list_of_names' &
EOF
done < list_of_names
5
28.01.2020, 02:13
  • 1
    Это похоже на разумный ответ. Что-то вдоль строк я думал о также. Я все еще говорю, что вопрос сбивает с толку. –  unxnut 28.05.2013, 16:12

Я не совсем уверен, что понимаю то, что Вы хотите. Просто предположение: одно из следующего кодирует фрагменты, делают намеченную вещь?

for a in $(cat list_of_names)
do
    ID=`echo $a`
    mkdir ${ID}
    echo '
        nohup sh -c '\''
        for b in $(cat another_list_of_names)
        do
            ./tools $b $a >> ${ID}/output
        done'\'' &
    '
done

или

for a in $(cat list_of_names)
do
    ID=`echo $a`
    mkdir ${ID}
    echo "
        nohup sh -c '
        for b in $(cat another_list_of_names)
        do
            ./tools \$b $a >> ${ID}/output
        done' &
    "
done
1
28.01.2020, 02:13
  • 1
    Первый фрагмент кода не заменит переменными ID и a в nohup команда. –   28.05.2013, 16:03
  • 2
    Это из-за использования одинарных кавычек. Одинарные кавычки препятствуют тому, чтобы переменные были заменены. –  unxnut 28.05.2013, 16:09
  • 3
    @EvanTeitelman. Эти два фрагмента делают разные вещи; я просто не знал, кого из них хотел OP. –  Uwe 28.05.2013, 17:06

Вы пытаетесь повторить это для наблюдения какой заключительные команды, собирающиеся быть похожими? или Вы пробуете к фактической попытке работать nohup команда с тем эхом?

Я предложил бы добавить строку к верхней части Вашего сценария, set -x так, чтобы Вы видели то, что делает каждая строка, а не попытайтесь grok она, просто смотря на нее.

Можно повернуться set -x на прочь по мере необходимости в сценариях также:

set -x

... code to debug ...

set +x
0
28.01.2020, 02:13
  • 1
    я отредактировал свой вопрос с проблемой, которую я имею. –  PoGibas 28.05.2013, 15:26

Теги

Похожие вопросы