首页 > 解决方案 > 如何跳过脚本的特定行数

问题描述

我创建了一个名为 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 行的脚本。请问我该怎么做?

标签: bashshellunixtermux

解决方案


使用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

推荐阅读