我在准备一个系统时正在写笔记,所以如果/当我需要准备另一个系统的时候我有一些东西需要关注。 此外,我希望能够使用这些笔记,并在某些时候实现傀儡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与所有者apache组webdev和权限0755 。