Linux – Bash – 从源代码复制多行string到terminal

我在准备一个系统时正在写笔记,所以如果/当我需要准备另一个系统的时候我有一些东西需要关注。 此外,我希望能够使用这些笔记,并在某些时候实现傀儡configuration。

我试图编写多行bash命令,但是当我从我的IDE(aptana)复制并粘贴到terminal中时,我得到了奇怪的行为,并且命令从不执行,即使当我回退历史时,多行命令看起来像我手动input。

我的问题是,如何将命令保存为多行格式,以便快速复制并粘贴到terminal中?

例:

$ "mkdir -p /var/log/php && \ chown -R apache /var/log/php && \ chgrp -R webdev /var/log/php && \ chmod -R 775 /var/log/php && \ touch /var/log/php/oops.log" touch /var/log/php/oops.log: No such file or directory 

Bash控制操作符(如&& )不需要“\”来连接行。 你也不需要引用你的脚本。 重构版本将是:

 mkdir -p /var/log/php && /bin/chown -R apache /var/log/php && /bin/chgrp -R webdev /var/log/php && /bin/chmod -R 775 /var/log/php && touch /var/log/php/oops.log 

剪切和粘贴在一个shell脚本应该工作。

你可以使用exec

 $ exec <<< "echo hello world" 

请记住,一旦完成,它将退出当前的shell。 你可以通过产生一个新的shell来解决这个问题:

 $ bash -s <<< "echo hello world" 

另外,你可以使它成为一个bash脚本。 例:

 #!/bin/bash mkdir -p /var/log/php chown -R apache /var/log/php chgrp -R webdev /var/log/php chmod -R 775 /var/log/php touch /var/log/php/oops.log 

你可以做这样的事情:

 $ cat >> ~/script.sh #!/bin/bash mkdir -p /var/log/php chown -R apache /var/log/php chgrp -R webdev /var/log/php chmod -R 775 /var/log/php touch /var/log/php/oops.log <CTRL+D> $ . ~/script.sh 

你只要做前四个命令做…

 $ install -o apache -g webdev -m 0755 -d /var/log/php 

这将创build一个目录/var/log/php与所有者apachewebdev和权限0755