以下bash脚本发现从给定的目录路径的.txt
文件,然后从.txt
文件目录路径
#!/bin/bash
FILE=`find /home/abc/Documents/2011.11.* -type f -name "abc.txt"`
sed -e 's/mountain/sea/g' $FILE
我改变输出一个词(变化山海)在这种情况下可以成功。 我的问题是,如果我想给目录路径作为命令行参数,那么它不起作用。假设,我修改我的bash脚本:
#!/bin/bash
FILE=`find $1 -type f -name "abc.txt"`
sed -e 's/mountain/sea/g' $FILE
并调用它像:
./test.sh /home/abc/Documents/2011.11.*
错误是:
./test.sh: line 2: /home/abc/Documents/2011.11.10/abc.txt: Permission denied
可有人建议如何访问目录路径作为命令行参数?
'./test.sh * .txt'将在test.sh被调用之前使外壳扩展通配符,因此它在功能上等同于'./test.sh file1.txt file2.txt file3.txt etc ..' –