为什么有些命令需要echo语句,但其他命令可以简单地写入:
#!/bin/bash
aptitude upgrade
echo "mysql-server-5.1 mysql-server/root_password password $DB_PASSWORD" | debconf-set-selections
答案 0 :(得分:2)
以stdin为一些输入进行处理的命令通常由echo命令提供。 Echo转储在stdout上提供给它的字符串,而stdout又使用管道“|”在stdin上复制。 因此,对于不需要从stdin输入或使用其他一些输入方法进行处理的命令,可以在没有echo命令的情况下编写。
答案 1 :(得分:1)
aptitude upgrade
:upgrade
是aptitude
计划的参数。如果您在屏幕上看到输出,则意味着在aptitude内部,它会对stdout做一些“回应”。
import fileinput
for line in fileinput.input():
print line
并接受参数
import sys
file = sys.argv[1]
这两个组合将使程序能够接受stdin或参数。这将是aptitute
或debconf-set-selections
的实施方式,具体取决于其构建的语言。