Есть 4 варианта я знаю
Вариант 1: точка с запятой
echo "put 'test','row1','cf:a','value1'; put 'test','row2','cf:b','value2'; put 'test','row3','cf:c','value3'" | hbase shell -n
Вариант 2: новые строки
echo -e "put 'test','row1','cf:a','value1'\nput 'test','row2','cf:b','value2'\nput 'test','row3','cf:c','value3'" | hbase shell -n
Вариант 3: EXEC
exec hbase shell -n << EOF
put 'test', 'row1', 'cf:a', 'value1'
put 'test', 'row2', 'cf:b', 'value2'
put 'test', 'row3', 'cf:c', 'value3'
EOF
Вариант 4: внешний файл
echo "put 'test', 'row1', 'cf:a', 'value1'" > tmpFile
echo "put 'test', 'row2', 'cf:b', 'value2'" >> tmpFile
echo "put 'test', 'row3', 'cf:c', 'value3'" >> tmpFile
hbase shell -n tmpFile
# obviously this also works: cat tmpFile | hbase shell -n
rm tmpFile
ли включать -n
аргумент до вас и вашего случая использования , Он инструктирует оболочку прекратить выполнение после первой неудачной команды и выйти с ненулевым кодом выхода. Он был добавлен с HBASE-11658.
Я лично предпочитаю вариант 3, так как он доступен для чтения и без использования временного файла.
где я могу найти информацию о опции '-e'. Он отлично работает, но об этом ничего не говорится в man-странице. – akmal
Не знаю о вашей man-странице, но у меня она есть. Также [die.net] (http://linux.die.net/man/1/echo). Это «разрешает [s] интерпретацию обратных слэшей». – Keegan