Следующая Баш скрипт находит .txt
файл из заданного пути каталога, а затем изменяет одно слово (изменение горы к морю) от .txt
файлапуть к каталогу в качестве аргумента командной строки в Баше
#!/bin/bash
FILE=`find /home/abc/Documents/2011.11.* -type f -name "abc.txt"`
sed -e 's/mountain/sea/g' $FILE
Выхода Я получение в этом случае в порядке. Моя проблема в том, что я хочу указать путь к каталогу как аргумент командной строки, тогда он не работает. Предположим, я изменить мой Баш скрипт для:
#!/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 ... ' –