【发布时间】:2016-07-14 19:57:09
【问题描述】:
我有以下代码:
while getopts ":p:t:n:" o; do
case "${o}" in
p)
p=${OPTARG}
numep=$p
mkdir $numep
;;
t)
t=${OPTARG}
tip=$t
if [ $tip == "c" ]; then
touch $numep/$numep.c
touch $numep/$numep.h
elif [ $tip == "c++" ]; then
touch $numep/$numep.cpp
touch $numep/$numep.h
fi
;;
n)
n=${OPTARG}
nrFis=$n
if [ $tip == "c" ]; then
for i in $(seq $n); do
touch $numep/src/$numep$i.c
touch $numep/inc/$numep$i.h
done
elif [ $tip == "c++" ]; then
for i in $(seq $n); do
touch $numep/src/$numep$i.cpp
touch $numep/inc/$numep$i.h
done
fi
;;
*)
err-help
;;
esac
done
err-help 是一个先前定义的函数,它提供正确调用的指令。
脚本的正确调用如下所示:./script.sh -p project_name -t project_type -n source_files_number
我想做什么:为 c 或 c++ 项目创建一个包含特定数量源文件的目录。
我的问题是:如何使用 ${OPTARG} ? p=${OPTARG} 究竟是什么? p、t、n 变量会填充正确的内容吗? 请问我怎么做对了? :(
【问题讨论】:
-
就像我说的。我分析了很多教程,这就是我以后可以写的。如果我为每个案例写 p=${OPTARG},t=${OPTARG},n=${OPTARG}。这些变量是否包含正确的数据?还是所有内容都相同?我不知道这里的诀窍......
-
是的,它们将包含正确的数据。