如何从脚本执行HandbrakeCLI?

时间:2019-01-26 12:45:13

标签: macos shell path command-line-interface handbrake

我正在尝试执行运行Handbrake视频转换的脚本。

如果我从终端运行以下命令,它将正常工作:

<br/><br/><br/>
<div class="col-md-4"></div>
<div class="col-md-4">
    <div class="panel panel-default">
        <div class="panel-heading">
            <h4><i class="fa fa-lock"></i>  login</h4>
        </div>
        <div class="panel-body">
            <?php echo form_open('/auth/login');?>
                <input type="text" placeholder="username" class="form-control " name="_name"  />
              <br/>
                <input type="password" placeholder="password" class="form-control " name="_pass"  />
                <br/>
                <input type="submit" name="login" class="btn btn-success" value="login" />
            <?php echo form_close();?>
        </div>
    </div>
</div>
<div class="col-md-4"></div>
------------------------------------------------------------------------------
------------------------------------------------------------------------------
<div class="col-md-3"></div>
<div class="col-md-6">
    <div class="panel panel-default">
        <div class="panel-heading">
            <h4><i class="fa fa fa-gear"></i> General Settings </h4>
        </div>
        <!--<form method="post" action="{site_url}/dashboard/save_settings" >-->
            <?php echo form_open('/dashboard/save_settings');?>
            <div class="panel-body">

                <div class="form-group">
                    <label for="site_name">Site Name</label>
                    <input name="site_name" class="form-control" id="site_name" value="{site_name}" type="text">
                </div>

                <div class="form-group">
                    <label for="site_mail">Email</label>
                    <input name="site_mail" class="form-control" id="site_mail" value="{site_mail}" type="text">
                </div>

                <div class="form-group">
                    <label for="site_desc">SEO description</label>
                    <textarea name="site_desc" class="form-control" id="site_desc" rows="3">{site_desc}</textarea>
                </div>

                <div class="form-group">
                    <label for="site_keys">SEO Keywords</label>
                    <textarea name="site_keys" class="form-control" id="site_keys" rows="3">{site_keys}</textarea>
                </div>

                <div class="form-group">
                    <label for="ad_code">Ad Code <small>(add ad code here like google adsense code or html code.)</small> </label>
                    <textarea name="ad_code" class="form-control" id="ad_code" rows="3">{ad}</textarea>
                </div>

                <!-- Social Media -->
                <h5><b>Social Media</b></h5>

                <div class="input-group">
                    <span class="input-group-addon" id="facebook"><i class="fa fa-facebook"></i></span>
                    <input name="facebook" type="text" value="{facebook}" class="form-control" aria-describedby="facebook">
                </div>
                <br/>
                <div class="input-group">
                    <span class="input-group-addon" id="twitter"><i class="fa fa-twitter"></i></span>
                    <input name="twitter" type="text" value="{twitter}" class="form-control" aria-describedby="twitter">
                </div>
                <br/>
                <div class="input-group">
                    <span class="input-group-addon" id="googleplus"><i class="fa fa-google-plus"></i></span>
                    <input name="googleplus" type="text" value="{googlep}" class="form-control" aria-describedby="googleplus">
                </div>

                <!-- END / Social Media -->
            </div>
            <div class="panel-footer">
                <!--<input  class="btn btn-success" type="submit" name="update" value="save" />-->
                <button class="btn btn-success" type="submit" name="update"><i class="fa fa-save"></i> save</button>
            </div>
        <!--</form>-->
        <?php echo form_close();?>
    </div>
</div>
<div class="col-md-3"></div>

如果将其放入.sh脚本中(并使用chmod a + x赋予脚本执行权限),则会出现以下错误:

HandbrakeCLI -i inputtestfile.mp4 -o outputtestfile.mp4 -z "Preset"

如果我随后将完整路径放在HandbrakeCLI上,那么它将起作用,例如:

HandbrakeCLI: Command not found

但是,上述方法很不方便,因为每次将Handbrake更新到新版本时,我都必须更新脚本。

如何在脚本中添加路径(我认为这是正确的),所以我可以使用:

/usr/local/Cellar/handbrake/1.2.0/bin/HandBrakeCLI -i inputtestfile.mp4 -o outputtestfile.mp4 -z "Preset"

谢谢

1 个答案:

答案 0 :(得分:0)

您可以使用以下内容开始.sh脚本:

PATH=$PATH:/usr/local/Cellar/handbrake/1.2.0/bin

是一个环境变量,它会影响在哪里看起来不合格的文件名(命令)。

对于不断变化的版本,您可以解析HandBrake --version输出并将其用作变量,而不是1.2.0中的PATH字符串。