Linux 如何使用getopts添加到文件shell中的变量
我试图使用getopts生成一个命令:actu-c[credits to add]向.txt文件中的变量添加一个值,但我不明白我做错了什么:Linux 如何使用getopts添加到文件shell中的变量,linux,shell,getopts,Linux,Shell,Getopts,我试图使用getopts生成一个命令:actu-c[credits to add]向.txt文件中的变量添加一个值,但我不明白我做错了什么: #/bin/bash set-e set-u 设置-o管道故障 而getopts'c:'选项;做 中的“$选项”案例 (c) c=“$OPTARG” 值=$(cred.txt ;; ?) 回显“actu[-c]”>&2 出口1 ;; 以撒 完成 移位“$((OPTIND-1))” 任何帮助都将不胜感激 不确定,当我复制代码时,它是有效的。错误信息是什
#/bin/bash
set-e
set-u
设置-o管道故障
而getopts'c:'选项;做
中的“$选项”案例
(c)
c=“$OPTARG”
值=$(cred.txt
;;
?)
回显“actu[-c]”>&2
出口1
;;
以撒
完成
移位“$((OPTIND-1))”
任何帮助都将不胜感激 不确定,当我复制代码时,它是有效的。错误信息是什么?哦,我在getopts'cb:'时收到了,所以它不工作了,谢谢!还有一件事,如果你冷帮助,我会怎么做的默认数量的信用增加到100,除非用户指定了另一个数字。非常感谢。您必须将执行实际处理/添加的行从case语句中取出(在getops的while循环之后),只留下“c=$OPTARG”,并且在getops的循环之前有“c=100”。这样,如果用户输入一个值,“c”将等于该值,但如果没有值,将使用100。
#!/bin/bash
set -e
set -u
set -o pipefail
while getopts 'c:' OPTION; do
case "$OPTION" in
c)
c="$OPTARG"
value=$(<cred.txt)
value=$((value+c))
echo "There were added: "$c" credits, total: "$value""
echo $value>cred.txt
;;
?)
echo "actu [-c]" >&2
exit 1
;;
esac
done
shift "$((OPTIND -1))"