use*_*915 2 ubuntu batch-file ubuntu-12.04
假设我有一组要在ubuntu终端中执行的命令:例如:
sudo apt-get update
sudo install xrdp
sudo install java
.....
Run Code Online (Sandbox Code Playgroud)
和许多其他人.
是否有可能在ubuntu中执行包含这些命令的文件并在没有人为干预的情况下执行(如是/否),默认是吗?
我尝试安装wine,执行$ wine cmd/c Commands.bat,将所有这些命令放在.bat文件中但收到错误"应用程序试图创建一个窗口,但是没有驱动程序可以加载." 那么,有没有简单的方法在ubuntu中执行一系列命令?
你在说什么 - 一个文件中的多个命令 - 被称为"shellscript".
假设你有commands.sh:
sudo apt-get update
sudo install xrdp
sudo install java
Run Code Online (Sandbox Code Playgroud)
然后你可以使用以下命令执行命令:
bash commands.sh
Run Code Online (Sandbox Code Playgroud)
您还可以使用所谓的shebang机制从中创建直接可执行的shellcript .
把这一行放在最上面(第1行) commands.sh
#!/bin/bash
Run Code Online (Sandbox Code Playgroud)
..并使文件可执行:
chmod +x commands.sh
Run Code Online (Sandbox Code Playgroud)
现在你可以直接执行它:
./commands.sh
Run Code Online (Sandbox Code Playgroud)
如果要对所有问题说"是",可以使用以下yes命令:
yes | bash "file_with_commands.sh"
Run Code Online (Sandbox Code Playgroud)
不需要做任何事情,如同尝试使cmd.exe工作一样疯狂和疯狂.你已经在你的系统上有一个完美的工作shell.你还需要了解类似的程序sudo.
sudo不是一些能够创造某种东西的神奇颂歌.sudo是一个帮助程序,允许启动具有提升权限的程序.sudo this sudo that您可以只使sudo启动一个shell并将带有所有这些命令的脚本传递给shell,而不是拥有一个链.
车削
Run Code Online (Sandbox Code Playgroud)sudo apt-get update sudo install xrdp sudo install java
成
sudo sh -c 'apt-get update ; install xrdp ; install java'
Run Code Online (Sandbox Code Playgroud)
然而,这看起来不正确.我想你本来打算写
sudo apt-get update
sudo apt-get install xrdp
sudo apt-get install java
Run Code Online (Sandbox Code Playgroud)
你可以缩短这个
sudo apt-get update
sudo apt-get install xrdp java
Run Code Online (Sandbox Code Playgroud)
或者在合并的单衬里壳中
sudo sh -c 'apt-get update ; apt-get install xrdp java'
Run Code Online (Sandbox Code Playgroud)
现在关于是/否问题.如果要在无人值守的情况下运行的程序不提供给出默认答案的选项,则可以使用该yes程序.即使它被命名 yes它也可以回答NO或你喜欢的任何东西:
narfi /home/dw
1007 ~ % yes Hello
Hello
Hello
Hello
Hello
Hello
…
Run Code Online (Sandbox Code Playgroud)
这是如何运作的?有一个称为"标准输入/输出"的概念,程序从中读取输入和写入输出.Shell允许您将一个程序的输出重定向到另一个程序的输入.这称为管道.特殊字符|表示shell中的管道.
所以说你有一个想要看到大量Aye输入的程序,你可以对shell进行以下调用
yes Aye | happypirate
Run Code Online (Sandbox Code Playgroud)
所以你可以将它与apt-get结合起来,给出所有默认的答案写作
yes | apt-get install …
Run Code Online (Sandbox Code Playgroud)
然而,这是在错误的树上咆哮.看看apt-get的调用选项:
~ % apt-get --help
apt 0.9.7.6 for amd64 compiled on Oct 16 2012 18:23:06
Usage: apt-get [options] command
apt-get [options] install|remove pkg1 [pkg2 ...]
apt-get [options] source pkg1 [pkg2 ...]
apt-get is a simple command line interface for downloading and
installing packages. The most frequently used commands are update
and install.
…
-y Assume Yes to all queries and do not prompt <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
…
Run Code Online (Sandbox Code Playgroud)
apt-get为您提供了一个选项,可以自动回答所有问题的所有问题.干净吧?请注意,其他程序可能使用不同的选项键,因此建议您始终阅读其精细手册(RTFM).
| 归档时间: |
|
| 查看次数: |
8517 次 |
| 最近记录: |