2016-08-24 3 views
1

Я хочу переписать файл конфигурации при запросе из сценария bash. Вот мой код.Как написать многострочную строку в файл в BASH

function quality { 
    echo $1 > ~/.livestreamerrc 
    echo ".livestreamer was modified!" 
} 

best="stream-types=hls 
hls-segment-threads=4 
default-stream=best 
player=vlc --cache 5000" 

read -p "Set quality: " INPUT 
if [[ "$INPUT" == "!best" ]]; then 
    quality $best 
fi 

Этот код выполняет следующие действия для .livestreamer файла, хотя.

$cat ~/.livestreamerrc 
stream-types=hls 

Почему?

+1

не проблема с кавычками? Если у вас есть «var =» hello world , я здесь «', а затем 'echo $ var', формат теряется; вместо этого «echo» $ var «работает хорошо. – fedorqui

ответ

1

Изменить его

quality "$best" # double quotes to avoid word splitting 

, а затем

echo "$1" > ~/.livestreamerrc 

Примечание: стоит проверять [ shellcheck ] documentation.Also, полностью прописными переменные, такие как INPUT зарезервированы для системы.

Смежные вопросы