Он не выживает в трубе, но это работает:
numbers="1 111 5 23 56 211 63"
max=0
echo $max>maxfile
for num in ${numbers[@]}; do
[ $num -gt $max ]\
&& echo "old -> new max = $max -> $num"\
&& max=$num\
&& echo $max>maxfile
done | tee logfile
read max<maxfile
echo "Max= $max"
Подтверждение - слабый способ достичь желаемого результата: не удалять файлы, которые вы не хотели удалять. Я могу попросить вас подтвердить 10 раз подряд, но если вы только что попросили меня удалить mispeled.txt
, вы не поймете свою ошибку, пока не подтвердите ее.
Лучше использовать trash
или аналогичную команду в вашей системе, которая отправляет файлы в (восстанавливаемую) «корзину». На rpmfind.net есть RPM-сборка пакета trash-cli
, но я не могу поручиться за эту версию. В случае сомнений соберите его самостоятельно из исходного кода .
Как отмечалось в комментариях, использовать псевдоним rm
- плохая идея, потому что он вернется, чтобы укусить вас, когда вы находитесь в оболочке без защитного псевдонима. а ваш мозг привык к «безопасной» rm
.
В вашем ~ / .bashrc
вы можете просто сделать это вместо этого:
alias rm='rm -i'
Таким образом, когда вы набираете rm -rf example-dir
, Bash переводит его в rm -i -rf пример-каталог
.
Обратите внимание, что для интерактивных оболочек входа вместо него используется ~ / .bash_profile
. Чтобы оболочки входа также использовали ~ / .bashrc
, просто добавьте это в свой ~ / .bash_profile
:
[ -f ~/.bashrc ] && . ~/.bashrc
Теперь ~ / .bashrc
всегда будет выполняться каждый раз, когда вы открываете терминал или сеанс ssh.
f -> принудительно, никогда не запрашивать
i -> запрашивать каждый раз
Если вам нужно получать подсказки, просто используйте rm -i
в псевдониме. У вас может быть 2 псевдонима (rmf и rmi), если вы хотите иметь оба.
rm -rfi
даст вам подсказку, однако rm -i -rf
нет. Ваш псевдоним делает ваши команды последним.