Это - проблема с кислородной-gtk темой. Измените его на кислородную молекулу.
Внутри задних кнопок косая черта цитирует следующий символ. Таким образом, вы получаете выходные данные из команды
ssh -q ${SIDHost} ". /usr/vmmc/bin/oracle_scripts/useq $ThisSID; echo $HOST_IS_ERPDB"
Вам нужно \\
вместо этого:
ERPTest=`ssh -q ${SIDHost} ". /usr/vmmc/bin/oracle_scripts/useq $ThisSID; echo \\$HOST_IS_ERPDB"`
, чтобы ERPTest
был набор к выходным данным команды
ssh -q ${SIDHost} ". /usr/vmmc/bin/oracle_scripts/useq $ThisSID; echo \$HOST_IS_ERPDB"
Или используйте $ (...)
вместо устаревшего '...'
. Обратите внимание, что в некоторых версиях AIX может потребоваться использовать /bin/sh
или ksh93
вместо античного /bin/ksh
.
ERPTest=$(ssh -q ${SIDHost} ". /usr/vmmc/bin/oracle_scripts/useq $ThisSID; echo \$HOST_IS_ERPDB")
-121--186586- Ответ заключается в том, что невозможно (если не скомпилировать собственный двоичный файл rsync
).
rsync
всегда добавляется в файл журнала. Поэтому, как предлагается в комментариях, перед запуском rsync
следует удалить журнал. Простой пример удаления журнала и последующего запуска rsync
:
rm rsync.log; rsync [OPTION...] SRC... [DEST]
Это также может быть полезно:
Вам не нужна никакая внешняя утилита, вы можете сделать это с помощью собственной функции управления последовательности оболочки . Это позволяет избежать разрыва имен файлов специальными символами. И не забудьте всегда использовать двойные кавычки вокруг переменных замен .
mv -v -- "$i" "${i%.*.*}.${i##*.}"
(Очевидно, этот фрагмент предполагает, что имя файла содержит два расширения. Если нет, $ {i%. *. *}
будет целым именем файла.)
Легкое переименование с MMV
MMV Команда:
$ mmv -n '*.*.*' '#1.#3'
или с Rename
Команда :
$ rename -n 's:(.*)\..*(\..*):$1$2:' *
Использование bash regex:
f=foo.bar.baz.qux
if [[ $f =~ (.+)\.[^.]+\.([^.]+)$ ]];then
new="${BASH_REMATCH[1]}.${BASH_REMATCH[2]}"
if [[ -f "$new" ]]; then
echo "moving $f would overwrite $new"
else
echo mv "$f" "$new"
fi
fi
mv foo.bar.baz.qux foo.bar.qux
Это имеет то преимущество, что ничего не делает, если в названии меньше 2 точек.
-121--66015-Если необходимо проверить соответствие имени файла - и, таким образом, переименовать только те файлы, которые фактически имеют два расширения, которые вы пытаетесь изменить - вы можете просто сделать:
case ${i##*/} in (*.*.*)
mv -- "$i" "${i%.*.*}.${i##*.}"
;;esac
Поймите, что, если вы не подтверждаете соответствие и вы настройками «$ i»
с глобус как:
for i in *
mv "$i" ...
... тогда использование той же команды mv
, что и выше (и в других ответах) может привести к перемещению файла в «$ i. $ i»
по мере расширения var в себя, если образец не совпадает.
Использование Bash Regex:
f=foo.bar.baz.qux
if [[ $f =~ (.+)\.[^.]+\.([^.]+)$ ]];then
new="${BASH_REMATCH[1]}.${BASH_REMATCH[2]}"
if [[ -f "$new" ]]; then
echo "moving $f would overwrite $new"
else
echo mv "$f" "$new"
fi
fi
mv foo.bar.baz.qux foo.bar.qux
Это имеет преимущество в том, что в названии есть менее 2 точек.