[英]bash script writing shell commands
为什么有些命令需要echo语句,而其他命令却可以简单地编写而无需:
#!/bin/bash
aptitude upgrade
echo "mysql-server-5.1 mysql-server/root_password password $DB_PASSWORD" | debconf-set-selections
以stdin为输入进行处理的命令通常由echo命令提供。 Echo将提供给它的字符串转储到stdout上,然后使用管道“ |”将其复制到stdin上。 因此,对于不需要stdin输入或使用其他输入方法进行处理的命令,无需编写echo命令即可。
aptitude upgrade
: upgrade
是aptitude
程序的一个参数。 如果您在屏幕上看到输出,则表示内部能力,这对stdout产生了一些“回响”。
与第二种情况一样,也可以编写程序以通过管道“ |”接收stdin。 例如,Python中的程序采用stdin,
import fileinput
for line in fileinput.input():
print line
并接受争论
import sys
file = sys.argv[1]
这两个的组合将使程序能够接受stdin或参数。 这将是实现aptitute
或debconf-set-selections
方式,具体取决于其所使用的语言。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.