【问题标题】:how can I skip a specific number of lines of a script如何跳过脚本的特定行数
【发布时间】:2021-08-31 15:55:09
【问题描述】:

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

【问题讨论】:

  • 如果跳过前3行,则不会设置$var
  • 你可以试试:sed 1,3d call.sh | bash

标签: bash shell unix termux


【解决方案1】:

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

【讨论】:

  • 谢谢@Barmar
猜你喜欢
  • 1970-01-01
  • 2020-03-11
  • 1970-01-01
  • 2023-03-03
  • 2023-03-12
  • 1970-01-01
  • 1970-01-01
  • 2022-06-10
  • 1970-01-01
相关资源
最近更新 更多