琐碎的问题。
#!/bin/bash
if test -z "$1"
then
echo "No args!"
exit
fi
for newname in $(cat $1); do
echo $newname
done
我想用数组填充代码替换循环内的回声。 然后,在循环结束后,我想再次读取数组并回显内容。 感谢。
答案 0 :(得分:5)
如果您的代码显示的文件有一组文件,每个文件都在一行中,您可以按如下方式将值分配给数组:
array=(`cat $1`)
之后,要处理每个元素,您可以执行以下操作:
for i in ${array[@]} ; do echo "file = $i" ; done
答案 1 :(得分:2)
declare -a files
while IFS= read -r
do
files+=("$REPLY") # Array append
done < "$1"
echo "${files[*]}" # Print entire array separated by spaces
答案 2 :(得分:1)
#!/bin/bash
files=( )
for f in $(cat $1); do
files[${#files[*]}]=$f
done
for f in ${files[@]}; do
echo "file = $f"
done