Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何使用getopts添加到文件shell中的变量_Linux_Shell_Getopts - Fatal编程技术网

Linux 如何使用getopts添加到文件shell中的变量

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))” 任何帮助都将不胜感激 不确定,当我复制代码时,它是有效的。错误信息是什

我试图使用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))”


任何帮助都将不胜感激

不确定,当我复制代码时,它是有效的。错误信息是什么?哦,我在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))"