在.bash_profile中丢失单引号

时间:2017-07-21 00:42:08

标签: macos terminal alias browser-sync .bash-profile

我是terminal.app的新工作。我正在使用browser-sync来创建服务器。我在.bash_profile中给别名这个代码:

require()

但是当我试着打电话给"服务器"我发现别名在--directory

之后丢失了单引号
<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Purrfect Match</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
    <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
    <link rel="stylesheet" type="text/css" href="main.css">
</head>
<body>

    <div class="container">
        <div class="nav-left-bar">
            <div class="row">
                <div class="col col-lg-3">
                    <img src="ysllogo.jpg">
                    <ul>
                        <li>winter 17 collection</li>
                    </ul>

                    <ul>
                        <li>la maison</li>
                        <li>saint laurent collections</li>
                        <li>saint laurent store locator</li>
                    </ul>

                    <ul>
                        <li>shop women</li>
                        <li>shop men</li>
                        <li>sunglasses collection</li>
                    </ul>

                    <ul>
                        <li id="search-but"><a href="#">search</a></li>
                    </ul>

                    <ul>
                        <li id="bag-items">bag</li>
                    </ul>
                    <div class="bottom-navi-bar">
                        <ul>

                            <li>log in / register</li>
                            <li>newsletter</li>
                            <li>customer care</li>
                            <li>shipping to: us</li>
                            <li>legal notices</li>
                            <li>follow us</li>
                        </ul>
                    </div>
                </div>
                <div class="col col-lg-9">
                    <video src="https://md.yoox.biz/618203721001/201707/263/618203721001_5506271544001_5506259873001.mp4" autoplay=""></video>
            </div>
            </div>
        </div>
    </div>


    <!-- SCRIPTS  -->

    <script
    src="http://code.jquery.com/jquery-3.2.1.js"
    integrity="sha256-DZAnKJ/6XZ9si04Hgrsxu/8s717jcIzLy3oi35EouyE="
    crossorigin="anonymous"></script>

    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>

    <!-- SCRIPTS -->
</body>
</html>

我无法从所需的目录启动我的服务器。你能帮我吗。谢谢你的关注。

1 个答案:

答案 0 :(得分:0)

(相同类型的)行情不会嵌套。您试图将单引号放在单引号字符串中,这是不可能的。因此,shell会将您的别名命令解析为以下部分:

  1. 未加引用的部分:alias server=
  2. 单引号部分:'browser-sync start --server --no-notify --directory '
  3. 另一个未引用的部分:desktop/project/src
  4. 另一个单引号部分:' --files "*.html, css/*.css, js/*.js"'
  5. 您可以在双引号字符串中嵌套单引号,反之亦然,甚至可以通过转义内部引号将双引号嵌套在双引号字符串中。但我不认为这是实际问题;单引号“失败”#34;如果他们在那里,他们实际上什么都不做。也就是说,这两个命令:

    browser-sync start --server --no-notify --directory 'desktop/project/src' --files "*.html, css/*.css, js/*.js"
    browser-sync start --server --no-notify --directory desktop/project/src --files "*.html, css/*.css, js/*.js"
    

    完全 同样的事情。目录路径周围的单引号告诉shell不要解释该字符串中的任何shell元字符,但由于那里没有shell元字符,它们根本没有效果(并且在传递给browser-sync之前被删除命令。

    必然会出现其他问题。您可能从错误的目录运行它(desktop/project/src是一个相对路径,并且可能仅在您当时在您的主目录中运行时)或者可能区分大小写(目录名为&#34;桌面&#34;,不是&#34;桌面&#34;),或者它可能是其他内容。但它不是别名中的引用。