如何在终端中组合多个命令?


25

我有以下命令。

cd import
zcat urls1.sql.gz | mysql -u root -p urls
cd /var/www/project1/
nano 1.php

到目前为止,我正在一步一步执行它。

有没有一种方法可以将这些命令合并在一行中?


3
您是否对此问题进行过任何研究?
don.joey 2013年

那不是我的问题。只需半分钟的谷歌搜索就可以找到答案。因此,我想知道您已经找到了什么,如果有的话。
don.joey 2013年

是什么让您认为我不赞成您的问题?我会忽略你的愤怒。附带说明一下,“哪个更好:在一行中使用;&&执行多个命令”这个问题要好得多,需要更多的研究,并且可能会吸引很多反对意见。
don.joey

该问题还有一个更通用的变体,可以在askubuntu.com/questions/334994/…上找到。它恰好处理了我在上一条评论中提到的问题。
don.joey

别担心Giri。这个问题的实质很有趣。我花了很多力气才做了。
don.joey

Answers:


33

是的,用分号分隔,如下所示:

dir; ls -l

大多数语言/外壳使用分号表示命令的结尾,并在从左到右求值时重新开始。

或者按照@RobieBasak的建议,使用&&代替; 防止编码事故。

dir && ls -l

23
最好使用&&代替;。这样可以确保仅在先前命令没有失败时才执行后续命令。这避免了一些尴尬的后果。例如:cd /somewhere_else; rm -Rf *如果/somewhere_else不存在或拼写错误,可能会造成灾难性的后果;cd /somewhere_else && rm -Rf *保护您免受此侵害。
罗比·巴萨克

2
“ &&”解决方案非常好,它应该是此答案中的第一个建议。请编辑您的答案,并将更好的答案推广到第一位。
KeremBaydoğan17年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.