найти опцию как аргумент командной строки

найти опцию как аргумент командной строки

У меня проблема с моим скриптом. Я пытаюсь написать скрипт, где опция для команды find является первым аргументом командной строки.

В моем сценарии есть что-то вроде

find_option=$1

find $find_option

Проблема в том, что, например, для опции find *.txtвыводом является только первый текстовый файл в моем каталоге, а я хотел бы найти все такие файлы.

Спасибо

решение1

Предположим, что вы зададите своему скрипту такой шаблон:

./myscript '*.txt'

(кавычки необходимы, чтобы избежать расширения шаблона до имен в текущем каталоге), тогда вы можете написать свой скрипт следующим образом:

#!/bin/sh

name_pattern=$1

find . -name "$name_pattern"

Он берет первый аргумент командной строки и использует его в вызове find, фильтруя имена, найденные в текущем каталоге и ниже, по заданному шаблону.

Обратите внимание, что здесь вам также необходимо заключить в кавычки расширение переменной $name_patternпри вызове findпо той же причине, по которой вам нужно было заключить его в кавычки в командной строке при вызове вашего скрипта, то есть, чтобы избежать расширения шаблона до имен в текущем каталоге.

Связанный контент