\#Add another new line of text to hosts and send the output to
hosts_update.sh
sed '/localhost/a\
# Gateway
10.0.0.1 it20.it.cs.umb.edu it20
# Addresses for the Windows PCs
10.0.0.240 it21.it.cs.umb.edu it21\
10.0.0.241 it22.it.cs.umb.edu it22\
10.0.0.242 it23.it.cs.umb.edu it23\
10.0.0.243 it24.it.cs.umb.edu it24\
10.0.0.244 it25.it.cs.umb.edu it25\
10.0.0.245 it26.it.cs.umb.edu it26\
10.0.0.246 it27.it.cs.umb.edu it27\
10.0.0.247 it28.it.cs.umb.edu it28\
' hosts > hosts_update.sh
答案 0 :(得分:1)
首先,对于shell脚本,您的初始几行看起来很远。看起来您的hosts_update.sh
行应该是评论的一部分(评论不应该以{{1}}开头):
\
其次,您需要在每行行的末尾# Add another new line of text to hosts and send the output
# to hosts_update.sh
,\
附加sed
,此时您只在某些选择行上显示该行。# Add another new line of text to hosts and send the output
# to hosts_update.sh
sed '/localhost/a\
\
# Gateway\
10.0.0.1 it20.it.cs.umb.edu it20\
\
# Addresses for the Windows PCs\
10.0.0.240 it21.it.cs.umb.edu it21\
10.0.0.241 it22.it.cs.umb.edu it22\
10.0.0.242 it23.it.cs.umb.edu it23\
10.0.0.243 it24.it.cs.umb.edu it24\
10.0.0.244 it25.it.cs.umb.edu it25\
10.0.0.245 it26.it.cs.umb.edu it26\
10.0.0.246 it27.it.cs.umb.edu it27\
10.0.0.247 it28.it.cs.umb.edu it28\
' hosts > hosts_update.sh
。考虑到这一点,这个脚本可能就是你想要的:
\
在你的情况下实际发生了什么(没有sed '/localhost/a\
# Gateway
10.0.0.1 it20.it.cs.umb.edu it20
连续字符):
localhost
是:
sed
; sed
评论专栏; .
在第10行执行sed
。此时,.
正确地抱怨它不知道如何处理it21-28
命令: - )
我会说,根据经验,脚本的早期(工作)迭代只有it20
行,有人添加(严重)hosts_update.sh
和注释/空行。这是基于这样的事实,只有那些线是错误的。然而,这只是(知情的)猜测,并不影响答案。
最后,您可能不想要调用生成的文件CREATE TABLE db1.test_table_file3(
Col1 INT,Col2 SMALLINT,Col3 SMALLINT)
COMMENT 'test_table_file2'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
,人们几乎肯定会认为它是一个shell脚本而不是主机文件它实际上是。