我如何在我的终端中发出一个shell命令,一旦一个给定的时间过去了,它就会用通知通知我?
为了说得更具体一点,我要找的是:
我只需要一个关闭警报,而不是重复。例如,systemd计时器具有这样的功能,但是每次都必须创建一个完整的systemd单元和计时器(然后不得不删除它)太不切实际了。
一个简单的CLI,所以我可以做一些类似remindme "3 hours" "see if thing x has finished yet"的事情,而不必做太多复杂的shell魔术。如果失败了,如果它至少可以被一个脚本包装,那就更好了。
如果通知只是供我阅读的字符串,就足够了
我希望这些投入都能发挥作用。也就是说,-n选项本身是可选的--我已经知道如何做了--但是它的顶部可能有一个可选的参数。如果不提供参数,则将应用回退值。
command -n 100
command -n
我只能使前者的输入类型工作或后者,但不能两者兼而有之。
HAS_NICE_THINGS=0
NICE_THINGS=50 # default value.
while getopts n: option; do
#while getopts n option; do # NICE_THINGS would always be that default value.
#whi
当使用getopts和case子句时,作为最后一个模式子子句的*)模式子子句是否等效于\?)和:)模式子子句作为最后两个模式子子句的结合?具体来说,
while getopts "" opt; do
case $opt in
a) a="$OPTARG"
;;
b) b="$OPTARG"
;;
...
;;
\?) printf "illegal option: -%s\n" "$
我有一个辞职.ipa文件的bash脚本。您可以通过以下方式运行它:
./mrs.sh -i eliterature.ipa -d "eliterature 123" -v 3.8.0.0 -s 3.8.0 -b com.company.eliterature.123
在开始时,有一个while循环来检查所有给定的选项:
echo "Signing with following options: "
while getopts "h?i:b:t:p:v:s:d:x" opt; do
case "$opt" in
h
好吧,我是linux的业余爱好者,玩getops和getop;我在几个论坛上读过关于这个主题的几次对话,但我似乎无法使我的代码工作。
这里有一个使用getopts的小脚本,它是从这个论坛回收的:
#!bin/bash
while getopts ":a:p:" opt; do
case $opt in
a) arg_1="$OPTARG"
;;
p) arg_2="$OPTARG"
;;
\?)
;;
esac
done
printf "Argument firstArg is
下面的shell脚本在Linux中有效,但在Solaris上无效,
#!/usr/bin/bash
while getopts ":s:" opt; do
case $opt in
s)
# Check IP against regex
if [[ "$OPTARG" =~ "\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(
嗨,我正在创建一个使用getopts的bash脚本。现在,我想创建一个"-h“参数来获取帮助。但是每次我必须给出一个参数的参数。
Now
test.sh -h test
What I want
test.sh -h
help
help
help
while getopts :c:s:d:h:I:p:r FLAG; do
case $FLAG in
s)
SOURCE=$OPTARG
;;
d)
DESTINATION=$OPTARG
我需要参加h,c,p,s,a,但我不能参加param b。
为什么我不能接受?这是我的剧本:
if [ ! -z $1 ]; then
HOSTNAME=""
CLIENT=""
SUBSCRIPTIONS_GROUPS=""
PROVIDER=""
SERVER=""
while getopts ":h:c:p:s:a:b" opt; do
case $opt in
h) HOSTN
我想做一个脚本,您可以用它提供几个参数:
while getopts ":a:b:c:" opt; do
case $opt in
a)
echo "-a was triggered
;;
b)
echo "-b was triggered
;;
\?)
echo "Invalid option: -$OPTARG" >&2
exit 1
;;
:)
echo "Option -$OPTARG
我在使用getopts时遇到了问题,我试图解析选项,但得到了错误:
错误:未找到名为-a的文件
代码:
while getopts ":a :b :c :d :e :f :g" opt; do
case $opt in
a) FILETOPARSE=$OPTARG
echo $compactAlarms
;;
b) FILETOPARSE=${OPTARG}
echo $nodeAlarms
;;
c) FILETOPARSE=${OP
我想在getopts中添加几个可选的参数。例如,对于下面的代码,我想添加两个可选参数- cagefile和knownlinc。我如何通过修改这段代码来做到这一点?
while getopts ":b:c:g:hr:" opt; do
case $opt in
b)
blastfile=$OPTARG
;;
c)
comparefile=$OPTARG
;;
h)
usage
exit 1
;;
g)
referencegenome=$OPTARG
我有以下bash脚本: while getopts g:s:l:o:t:f:rbh option
do
case "${option}"
in
g) genome=${OPTARG};;
s) species=${OPTARG};;
l) RepSub=${OPTARG};;
o) directory=${OPTARG};;
r) RepSpec=${OPTARG};;
我解析命令行选项的典型设置是:
CONF=""
INPUT=""
while getopts ":c:i:" FLAG; do
case $FLAG in
i) INPUT=$OPTARG;;
c) CONF=$OPTARG;;
\?) echo -e "\nInvalid option: -$OPTARG"
usage;;
:) echo -e "Option -$OPTARG requires an argument."
我正在编写一个脚本,将多个文件组合成一个文件。我不知道输入/输出文件的名称和有多少个输入文件,我决定使用-i标志读取输入文件,使用-o标志指定输出文件。
请注意,这只是读取输入/输出文件的第一步。我正在处理多种格式的输入文件: txt,xlsx,rtf,pdf。因此,单个cat f1 f2 f3 > outfile在我的情况下不起作用。
#!/bin/bash
# This script merge txt,xlsx,rtf,pdf files in pdf_input folder into a single pdf file and save the output
# file
我有一台新的RHEL6机器,我正在尝试运行一个脚本来生成一些输出。这个脚本使用以前从未使用过的getopts。这本应在其他机器上工作,但这是我第一次尝试。下面是脚本的开头。语法有什么问题吗?当我试图输出变量时,它不会显示任何内容:
#! /bin/sh
while getopts "h:u:g:o:e:y:bf" c
do
case "$c" in
u) USER=$OPTARG;;
g) GROUP=$OPTARG;;
o) OUT=$OPTARG;;
我知道这个问题被问了好几次,但我还是想不出答案。
#include<stdio.h>
#include<getopt.h>
int ch;
int queue_time=60;
int thread_num=4;
char *scheduling_algo="FCFS";
extern char *optarg;
int port=8080;
int debug_flag,h_flag,l_flag;
int main(int argc,char *argv[])
{
while ((ch = getopt(argc, argv, "dhlp
我想使用下面的代码在一个getopts脚本中使用bash解析多个参数。
while getopts b:B:m:M:T flag
do
case "${flag}" in
b) rbmin=${OPTARG};;
B) rbmax=${OPTARG};;
m) mbmin=${OPTARG};;
M) mbmax=${OPTARG};;
T) sigType=${OPTARG};;
esac
done
echo $rbmin,$rbmax,$mbmin,$mbmax, $sigTyp
好的,所以我不太明白为什么for循环会在chkNum变量使用的数字之前不使用seq。要运行这一点,我使用firstScript.sh -n3 -t10 userName。因此,我试图从-n中删除-n3,并运行for循环,直到3,或者在其中使用任何数字。希望这不是太令人困惑,谢谢提前。
#!/bin/sh
chkNum=$1 #$1 line parameter
user=$3 #$3 line paramater
time=$2 #$2 line parameter
echo $chkNum|cut -c3-
for i in $(seq 1 $chkNum|cut -c3-)
do