дрібниці помилка в скрипті bash


1
#!/bin/bash

aa=$( ps -e   | grep "chrome" | awk '{print $1;}')
for i in $aa
   do
     gnome-terminal --tab -e" sudo cpulimit -p $i -l 35 " 
   done

коли я запускаю його, я отримую помилку відсутнього аргументу, я хочу, коли процес хромування запустіть, щоб отримати всі пов'язані з процесом батьки та діти та захистити їх у змінній aa, то я відкриваю термінал gnome, щоб cpulimit один за одним, будь-яка допомога pls?

Відповіді:


1

Помилка повинна дати вам підказку: просто додайте пробіл після -e.


там немає ніякого хита, як і ментатор, і я вже поставив * спасибі за відповідь :)Failed to parse arguments: Missing argument for -e
Ahmed Zain El Dein

1
@AhmedZainElDein: Ви, мабуть, неправильно мене зрозуміли. Поставте пробіл між -eі "sudo cpulimit ....
choroba

так, сер, ти прав, дякую, btw, я хочу запитати про остаточну річ, я хочу відкрити gnome, все записане в одне вікно, для кожної петлі, не відкривати вікно gnome в кожній ітерації, щоб ви могли мені допомогти в цьому
Ахмед Заїн Ель Дейн

0

pgrep - це зручний інструмент для вилучення PID на основі назви програми:

pgrep chrome | 
while read pid; do
  gksudo cpulimit -p $pid -l 35
done

дякую, сер, за відповідь, але я хочу зберегти його у змінній aa = $ somevalue, щоб пізніше зробити інші речі пізніше за допомогою цієї змінної
Ахмед Заін Ель Дейн

і я хочу зробити всередині циклу for цикл, щоб відкрити термін gnome, а також під час кожної ітерації зробити відкритий термінал gnome, щоб не торкатись у кожній петлі, відкрити нові незалежні вікна терміналу
Ахмед Заїн Ель Дейн
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.