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的第二个作业。为什么?
发布于 2014-09-16 09:48:23
请尝试以下命令,它应该启动两个作业:
gnome-terminal --tab -e "
sh -c '
(gedit /media/ubuntuman/Onces\ And\ for\ Al/scripts/faceBook &) ;
sudo cpulimit -e ubuntu-tweak -l 80;'"括号表示bash中的子subshell。引用手册页:
(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.发布于 2014-09-16 10:11:35
由于您在文件名中没有使用任何特殊字符(即,对于shell来说是特殊的)字符,而且您没有给出任何进一步的命令,所以您可以使用-x选项并删除shell的周围引号:
gnome-terminal --tab -x bash -c \
'gedit "/media/ubuntuman/Onces And for Al/scripts/faceBook" & \
sudo cpulimit -e ubuntu-tweak -l 80'请注意,&不需要后面跟着一个;。
https://askubuntu.com/questions/524627
复制相似问题