Специальный символ сценария Bash и ошибка фонового задания

gnome-terminal --tab -e "
sh -c '
 gedit'/media/ubuntuman/Onces And for Al/scripts/faceBook' & ;
 sudo cpulimit -e ubuntu-tweak -l 80;'"

Это - часть кода, который я хочу отредактировать. Специальный символ ' (одинарная кавычка) в sh -c будет конфликтовать с одинарной кавычкой gedit, как я могу решить его?

Я также нахожу, что, если я выполняю первое задание в фоновом режиме, терминал не выполняет вторую работу sudo cpulimit bla bla... Почему?

0
задан 16 September 2014 в 19:55

2 ответа

Попробуйте следующую команду, она должна запустить оба задания:

gnome-terminal --tab -e "
sh -c '
 (gedit /media/ubuntuman/Onces\ And\ for\ Al/scripts/faceBook &) ;
 sudo cpulimit -e ubuntu-tweak -l 80;'"

Круглые скобки обозначают подоболочку в ударе. Заключить страницу справочника в кавычки:

   (list) list is executed in a subshell environment (see  COMMAND  EXECU‐
          TION  ENVIRONMENT below).  Variable assignments and builtin com‐
          mands that affect the  shell's  environment  do  not  remain  in
          effect  after  the  command completes.  The return status is the
          exit status of list.
1
ответ дан 7 October 2019 в 02:29

Так как Вы не используете специального предложения (т.е. особенные для оболочки) символы в имени файла, и так как Вы не даете дальнейшие команды, можно использовать -x опция и не учесть окружающие кавычки для оболочки:

gnome-terminal --tab -x bash -c \
   'gedit "/media/ubuntuman/Onces And for Al/scripts/faceBook" & \
    sudo cpulimit -e ubuntu-tweak -l 80'

Примечание, что & не должен сопровождаться ;.

0
ответ дан 7 October 2019 в 02:29

Другие вопросы по тегам:

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