(Bash)echo不输出存储的变量

时间:2014-10-19 10:40:45

标签: bash sh

我是bash的新手并且已经完成了我的第一步 我想学习如何在脚本中存储参数localy以供以后使用并编写此脚本

#!/bin/bash

while getopts ":d" opt;do
     case "${opt}" in
         d)
           d =$OPTARG
           echo "-d was triggered ! storing ${d}" >&2
           ;;
     esac
done

这是我的输出:

$ -d was triggered! storing 

我的问题是什么? :我没有正确存储数据,或者我没有正确打印或两者都打印:)

2 个答案:

答案 0 :(得分:2)

删除=$OPTARG之前的空格。看看http://www.shellcheck.net/

答案 1 :(得分:2)

:命令中的选项名称之后保留getopts

#!/bin/bash

while getopts "d:" opt; do
     case "${opt}" in
         d)
           d="$OPTARG"
           echo "-d was triggered ! storing ${d}" >&2
           ;;
     esac
done

您还需要删除=周围的空格,最好在分配时使用引号。

现在当你跑:

./script.sh -d 1234
-d was triggered ! storing 1234