使用Shell脚本从属性文件读取时,如何转义变量中的特殊字符。属性文件具有键和值,并且键中具有period(。)符号。密钥中的此句点符号被视为可执行文件,bash正在执行它。我将双引号放在变量扩展中,但仍然抛出错误。我在这里做错什么了。
Blade Templates
Layout
// Extend your theme layout
@extends('layouts.master')
// Start section
@section('title')
// End Section
@endsection
@parent
// Show section in your theme
@yield('name')
// Include view in your file
@include('view.name')
// Include view with pass data
@include('view.name', ['key' => 'value']);
root#cat my-sonar.properties
#!/bin/bash
source my-sonar.properties
for servicename in `cat my-services.input`
do
# Both variable expansions are not working.
echo $servicename ${sonar.host.url} ${sonar.login}
echo $servicename "$sonar.host.url" "$sonar.login"
done
root#cat my-services.input
sonar.host.url=http://localhost:9000/sonar/
sonar.login=sonar-token-string
下面是我看到的错误。
javaservice-one
javaservice-two
答案 0 :(得分:0)
您可以在采购期间转移点(并在使用时更改代码):
source <(tr "." "_" < my-sonar.properties)
echo "${sonar_login}"
编辑: 该解决方案忽略了'='符号右边的任何点。这可以通过改善 来源<(sed':a; s / [。]([^ =] * =)/ _ \ 1 / g; ta'my-sonar.properties)
请注意,可以编辑属性文件的人还可以插入将在您的帐户下执行的unix命令。