bash - 如何跳过脚本的特定行数
问题描述
我创建了一个名为 call.sh 的 bash 脚本
#!/bin/bash
termux-tts-speak whom doyou want to call
var="$(termux-speech-to-text)"
if [ "$var" = "Pappu" ]
then
termux-tts-speak calling to pappu
termux-telephony-call xxxxxxxxxx
elif [ "$var" = "call me" ]
then
termux-tts-speak calling to you
termux-telephony-call xxxxxxxxxx
else
termux-tts-speak sorry I can not understand say it again
fi
我使用命令运行脚本
$bash call.sh
但是,如果我想在不修改 bash 文件的情况下执行跳过前 3 行的脚本。请问我该怎么做?
解决方案
使用tail
命令并将其通过管道传输到bash
:
tail -n +4 call.sh | bash
但更好的主意是使用命令行参数并在脚本中进行测试。
#!/bin/bash
if [ "$1" != "--noask" ]
then
termux-tts-speak whom do you want to call
fi
var="$(termux-speech-to-text)"
if [ "$var" = "Pappu" ]
then
termux-tts-speak calling to pappu
termux-telephony-call xxxxxxxxxx
elif [ "$var" = "call me" ]
then
termux-tts-speak calling to you
termux-telephony-call xxxxxxxxxx
else
termux-tts-speak sorry I cannot understand say it again
fi
然后你可以像这样运行脚本来跳过第一个命令:
./call.sh --noask
推荐阅读
- oauth-2.0 - Auth2 + Open ID Connect,如何使用内部后端进行授权?
- reactjs - 使用单元格度量呈现占位符时,网格行高度未计算正确的高度
- magento - Magento 2 在导出订单时崩溃
- javascript - 表格中的jQuery过滤器元素
- amazon-web-services - AWS CloudFormation NestedStacks 与模块
- authentication - 为什么我收到错误 500“出了点问题!” 使用 Azure DevOPS 登录时(请求“/v1/Authorizations/vso”)
- javascript - 如何将对象映射到ui?
- django - Django Rest Framework 中的循环操作
- flutter - Dismissible 容器和 ListView 项大小不同
- javascript - 如何在 javascript/react js 中制作动画?