Статус выхода последней команды с помощью PROMPT_COMMAND

Couchdrop.io/Rsync

Couchdrop funciona con Dropbox, Box, GoogleDrive, Amazon, etc. y le permite Rsync y SCP sus archivos directamente en ellos sin instalar software o paquetes adicionales.

Básicamente solo necesitorsync -a -e ssh filename username@rsync.couchdrop.io:

¿Esto podría ayudarte?

0
18.05.2019, 19:13
2 ответа

Просто поместите его в var после команды.

/home/exit_status$ export PROMPT_COMMAND="echo $?"                           
0                                                                   
/home/exit_status$ rm /                                                      
rm: cannot remove ‘/’: Is a directory                               
0                                                                   
/home/exit_status$ u=$?                                                   
0
/home/exit_status$ echo $u
1                                                
0
  • $uбудет хранить состояние до сброса.
  • вы не можете вставить u=$?в PROMPT_COMMAND, так как $uбудет перезаписываться каждой командой.
  • Кстати, я не уверен, что это будет работать в скрипте.
0
28.01.2020, 02:18

Поскольку вы использовали двойные кавычки, $?расширяется, когда вы присваиваете значение -, в чем вы можете убедиться, используяset -x:

$ PROMPT_COMMAND="echo $?"
+ PROMPT_COMMAND='echo 0'
++ echo 0
0

Если вы измените двойные кавычки на одинарные, вы должны получить желаемое поведение:

$ PROMPT_COMMAND='echo $?'
+ PROMPT_COMMAND='echo $?'
++ echo 0
0

т.е.

$ set +x
+ set +x
0
$ ls nofile
ls: cannot access 'nofile': No such file or directory
2
4
28.01.2020, 02:18

Теги

Похожие вопросы