从命令行读取后,我需要将输入分成不同的值。我正在使用 OPTARGS
方法和while
循环来阅读它。
所以我的输入将像“hostanme1 hostname2 hostnamen”
如何通过此循环来提取单独变量中的主机名。
while getopts S:H: opt
do
case ${opt} in
S)
SCHNAME=${OPTARG}
;;
H)
HOST=${OPTARG}
;;
*)
DisplayUsage
exit 1
;;
esac
done
这将像./filename.ksh -S schema -H "Host1 host2 host3 host4
答案 0 :(得分:2)
关键是在一个字符串周围加上'('和')',在项目之间加上空格来构成一个对象数组。
H)
HOSTS=(${OPTARG})
;;
for host in "${HOSTS[@]}"
do
echo "$host"
done