【发布时间】:2010-06-21 14:31:00
【问题描述】:
此 bash 脚本将 jar 文件的名称连接到类路径(变量 CP),在 while 循环中,值是正确的,但在子shell 中丢失,如相关问题 Bash variable scope 中所述
#!/bin/bash
CP="AAA"
func() {
ls -1 | while read JAR
do
if [ ! -z "$CP" ]; then
CP=${CP}':'
fi
CP=${CP}${JAR}
done
echo $CP # <-- prints AAA
}
func
我的问题是,由于我无法确定哪个元素将是最后一个元素,如何保存该值。
我是否真的必须将当前值(在循环中重复)保存到文件中?
编辑:
一位同事想出了这个运行良好的命令序列
ls | xargs echo|tr ' ' :
【问题讨论】: