2015-11-30 3 views
0

Я пишу скрипт для удаления файла журнала из определенного места. Я бы передал директорию и имя файла в качестве параметра для функции. Эта функция удалит этот файл.Unix Shell String, добавляющая к удалению файл

код ниже

#!/bin/sh 
folder= '/apps/applications/jboss-as/servers/domain/log/' 
logfile=temp.log 

delFile(){ 
echo 'you will delete $1 $2' 
file_to_del='$1$2' 
rm -rf $file_to_del 
} 

delFile $folder $logfile 

выход, как показано ниже.

будут удалены $ 1 $ 2

Не могли бы вы рассказать, как я должен обновить этот код для моего требования?

+1

Удалите пространство между знаком равенства и пути в вашей второй строке. – Bernhard

+0

Спасибо @ Бернхард Это правильно! –

ответ

2

Как полагает Альберто вам нужно использовать ". Также вам нужно удалить пробел до пути к папке.

Так попробуйте это один:

#!/bin/sh 
folder=/apps/applications/jboss-as/servers/domain/log/ 
logfile=temp.log 

delFile(){ 
echo "you will delete $1$2" 
file_to_del="$1$2" 
rm -rf "$file_to_del" 
} 

delFile "$folder" "$logfile" 
2

В bash вы не получаете замену переменных, если используете одинарные кавычки '.

Вы должны изменить file_to_del='$1$2' на file_to_del="$1$2".

По теме: http://tldp.org/LDP/abs/html/varsubn.html

+0

Спасибо Альберто! upvoted! –

+0

Ваш ответ сработал! Принял ответ tod, чтобы помочь ему достичь 1k :) –

+1

Я рад, что это помогло –