Командная строка MySQL - привязать клавишу к обратному поиску команд

Я не совсем уверен, что понимаю ваш вопрос, но я думаю, что вы ищете:

script.sh "$some_multiline_string" "$another_multiline_string" param1 param2

Затем внутри скрипта у вас будет:

file1="$1"
file2="$2"
param1="$3"
param2="$4"

Если вам действительно нужно передать его по конвейеру, вы можете сделать что-то вроде этого:

printf '%s\0%s' "$str1" "$str2" | script.sh param1 param2

И в скрипте:

#!/bin/bash
param1="$1"
param2="$2"

strings=()
while IFS= read -d '' str; do
    strings+=("$str")
done
printf 'String 1: %s\n\nString 2: %s\n' "${strings[0]}" "${strings[1]}"

Например:

$ str1="this is
a multiline
string"

$ str2="this is
another multiline
string"

$ printf '%s\0%s\0' "$str1" "$str2" | foo.sh
String 1: this is
a multiline
string

String 2: this is
another multiline
string

В bash версии 4.4 +, вы можете сделать:

#!/bin/bash
param1="$1"
param2="$2"

strings=()
readarray -t -d '' strings

printf 'String 1: %s\n\nString 2: %s\n' "${strings[0]}" "${strings[1]}"
2
04.06.2016, 00:40
0 ответов

Теги

Похожие вопросы