Bash введите переменные exter в команде -exe c bash - c - PullRequest
0 голосов
/ 11 марта 2020

Я получил этот скрипт в bash tan получает 3 параметра.

#!/bin/bash

if [ $# -ne 3 ]
then 
    echo "Incorrect number of Paramethers"
    exit 1
fi

if ! [ -d $1 ]
then 
    echo "The first paramether is not a directory"
    exit 1
fi

nom=$1
cad1=$2
cad2=$3

find $nom/ -type f -exec bash -c 'printf "Arxiu:  {} \t NÚMERO: "; grep -o "[[:alnum:][:punct:]]*ad[[:alnum:][:punct:]]*en[[:alnum:][:punct:]]*" {} | wc -l;' \; | grep " [1-9][0-9]*$" 

Я просто хочу изменить объявление на значение cad1 и en на значение cad2. Как я могу положить в exe 2 параметра. $ cad1 и $ cad2 не работают. (в последней строке работают первые строки)

1 Ответ

0 голосов
/ 11 марта 2020

Проще и безопаснее передавать аргументы в качестве аргументов, а затем использовать позиционные параметры.

find "$nom/" -exec bash -c 'printf "Arxiu:  %s \t NÚMERO: " "$1"; echo "$2" "$3"' -- {} "$cad1" "$cad2" \;

Не забудьте заключить в кавычки расширения переменных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...