因此,我试图获取一个脚本,我正在使用文本文件中定义的不同参数在不同目录中运行另一个脚本。 这是我的代码的一部分:
for bline in $(cat "$file"); do
lindir=$()
linarg=$()
echo "dir: ${lindir}"
echo "arg: ${linarg}"
done
我们说我的文件中有一行说明了这一点:
"./puppies" -c=1 -u=0 -b=1
如何为./puppies
获取lindir
的输出,为-c=1 -u=0 -b=1
获得linarg
的输出?
答案 0 :(得分:1)
lindir="$( cut -d ' ' -f 1 <<<"$bline" )"
linarg="$( cut -d ' ' -f 2- <<<"$bline" )"
那是
while read -r bline; do
lindir="$( cut -d ' ' -f 1 <<<"$bline" )"
linarg="$( cut -d ' ' -f 2- <<<"$bline" )"
printf "dir: %s\n" "$lindir"
printf "arg: %s\n" "$linarg"
done <"$file"
如果你在一个不理解“here-strings”的shell中:
lindir="$( printf "%s" "$bline" | cut -d ' ' -f 1 )"
linarg="$( printf "%s" "$bline" | cut -d ' ' -f 2- )"