2012-05-29 5 views
0
7zpar() { 
7z t $1 && par2 c -r10 -u Recovery $1 
} 

Я пытаюсь объединить две команды в одну через функцию, а первая работает без проблем, но вторая никогда не срабатывает. Я признаю, что я новичок в программировании, и я искал в Интернете, чтобы узнать, не делаю ли я что-то неправильно. До сих пор я ничего не нашел по этому поводу.function multiple

+1

'&&' делает последующие команды зависимыми от успеха/отказа предыдущей команды. Если вы хотите, чтобы команда par2 выполнялась безоговорочно, используйте вместо этого ';'. –

+0

Есть ли специальный символ в $ 1? Безопаснее процитировать его как «1 доллар». – choroba

+0

Никаких специальных символов. Это простой текст из массива. – Fred

ответ

2

Любая причина не просто запускать два без проверки &&?

7zpar() { 
7z t $1 
par2 c -r10 -u Recovery $1 
} 

&&, в контексте вы имеете его, будет запускать вторую команду только если первый один возвращает успех. Коэффициенты 7z возвращает false, а par2 никогда не запускается. Если вы не хотите это поведение, просто разделите его.

+0

Да, это было мое намерение; что он будет работать при успехе предыдущей команды .. и через консоль я вижу, что первая команда завершается ... ну ладно. – Fred

+1

@Fred: 'echo $?' После команды '7z', чтобы увидеть, каково его возвращаемое значение. –