аргументы в баш - PullRequest
       3

аргументы в баш

0 голосов
/ 18 декабря 2011

этот сценарий перемещает все файлы документов в указанную директорию .... мне удалось указать аргумент, но проблема, с которой я сталкиваюсь, заключается в том, чтобы указать полный путь, по которому перемещаются сценарии, например, я хочу запустить сценарий следующим образом это ниже

./loo -d then path where im moving the files (i.e ./loo -d the second argument where files are moving to)

это мой код

#!/bin/bash
From="/home/elg19/lone/doc"
To="/home/elg19/documents"

if [ $1 = -d ]; then
cd "$From"
for i in pdf txt doc; do
find . -type f -name "*.${i}" -exec mv "{}" "$To" \;
done
fi

Ответы [ 2 ]

1 голос
/ 18 декабря 2011

Я не уверен, в чем именно проблема?

Нужно ли ставить " вокруг полного пути, если он содержит пробелы?
./loo -d "full path with spaces" Аналогично $ 1, полный путь можетполучить с $ 2.

0 голосов
/ 19 декабря 2011

как насчет этого?

#!/bin/bash

from=/home/elg19/lone/doc
if [[ $1 = -d ]]; then
    to=$2
else
    to=/home/elg19/documents
fi

find "$from" -type f \( -name '*.pdf' -o -name '*.txt' -o -name '*.doc' \) -exec bash -c 'dest=$1; shift; mv "$@" "$dest"' _ "$to" {} +
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...