文件名:树(可执行)
#!/bin/bash
for i in $*
do
if [ -d $i ]; then
echo "===================$i================" >> ?????
tree -L 1 $i >> ?????
fi
done
如你所见,我想列出我输入的参数的树结构,我想让所有的树结构重定向到最后一个文件(它的id是$#),它是“????? “在这个脚本中,因为我不知道怎么写。
例如:
./Tree ./* README
是的,所有目录树结构都会写在README中!
最佳答案
如果您的输出文件是第一个参数而不是最后一个,那么这样做会更容易/更简单。
那只需要
output=$1
shift
添加到脚本的顶部。
使用最后一个参数实际上并不难,它只是涉及更多“高级”变量用法:
#!/bin/bash
output="${@: -1}"
for i in "${@:0:${#@}}"
do
if [ -d "$i" ]; then
echo "===================$i================" >> "$output"
tree -L 1 "$i" >> "$output"
fi
done
其中 "${@: -1}"
是参数数组中的最后一个元素,"${@:0:${#@}}"
是从 0
到 ${#@}
的参数($@
的长度,即脚本的参数计数)。
关于linux - 脚本将命令输出重定向到最后一个文件名参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33266176/