在Sh脚本中管道多个字符串

时间:2018-10-17 03:44:09

标签: sh stdin

尝试将多个字符串传送到类似于以下文件的文件中:

#!/bin/sh

echo "First name: ";
read ANSWER1;
echo "Last name: ";
read ANSWER2;
echo $ANSWER1 ANSWER2;

希望能够传递类似或相似的值(我不想更新sh脚本)并获得以下结果:

$ echo "Bugs"; echo "Bunny" | scriptName
Bugs Bunny

2 个答案:

答案 0 :(得分:0)

您需要一个命令组:

{ echo "Bugs"; echo "Bunny"; } | scriptName

{ ... }中的每个命令都从大括号组继承其标准输出,大括号组的输出是管道。

答案 1 :(得分:0)

对于多行输入,请使用Heredoc而不是多个PROCEDURE pr_test_FORALL IS DECLARE csrData AS CURSOR FOR SELECT t1.*, NULL AS COUNT_VAL, NULL AS FINAL_AMT, NULL AS REFERENCE_NUMBER FROM TABLE_TEST t1; TYPE ty_tbl_table_test IS TABLE OF csrData%ROWTYPE -- Note: csrData%ROWTYPE INDEX BY BINARY_INTEGER; l_tbl ty_tbl_table_test; l_final_amt INTEGER := 0; l_reference_number VARCHAR2(100); BEGIN OPEN csrData FETCH csrData BULK COLLECT INTO l_tbl; CLOSE csrData; FOR i IN 1 .. l_tbl.COUNT LOOP l_final_amt := l_final_amt + 10; l_tbl(i).FINAL_AMT := l_final_amt; l_tbl(i).REFERENCE_NUMBER := SYSDATE + l_tbl(i).ID; END LOOP; FORALL i IN l_tbl.FIRST..l_tbl.LAST INSERT INTO SOME_OTHER_TABLE (FNAME, ADDRESS, FINAL_AMT, REF_NUMBER) VALUES (l_tbl(i).FNAME, l_tbl(i).ADDRESS, l_tbl(i).FINAL_AMT, l_tbl(i).REFERENCE_NUMBER); EXCEPTION DBMS_OUTPUT.put_line('EXCEPTION occurred'); END pr_test_FORALL;

echo