Ubuntu: Show your branch name on your terminal
Добавьте эти строки в файл ~ / .bashrc
# Show git branch name
force_color_prompt=yes
color_prompt=yes
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[01;31m\]$(parse_git_branch)\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w$(parse_git_branch)\$ '
fi
unset color_prompt force_color_prompt
Оказалось, что причиной проблемы является то, что иногда я забыл подключить свой USB-порт при использовании dd, или сам порт USB был свободным.
Я добавил следующие строки в сценарий оболочки, который я использовал, скомпилировал мою программу и запустил команду dd:
lsusb -d 0781:5530
! [[ $? = 0 ]] && { echo "please plug in the sandisk cruzer usb before proceeding"; exit 1; }
Длинное и подробное объяснение:
lsusb перечисляет все доступные USB-накопители или их подмножество в зависимости от ваших аргументов. Я получаю usb по определенному номеру продукта, а это значит, что я могу использовать только один конкретный usb, если я не изменю значение. Например, это конкретное число обрабатывается с помощью моего sandisk cruzer, поэтому я могу подключить его только в том случае, если я не запустил lsusb без аргументов, проверьте, где находится мой usb, и получите идентификатор и замените его на старый. [ ! d3]
Если lsusb не находит конкретное устройство, оно возвращается с кодом ошибки. [F7] содержит этот код ошибки и, как правило, в сценарии оболочки, код завершения последнего процесса. Процессы Linux (и другие, как я полагаю) возвращают 0 при успешном запуске, так что неудачный запуск (иначе USB не подключен), он вернет что-то другое, чем 0.
[[ (condition) ]] представляет условное выражение в сценариях bash, а ! представляет оператор NOT, другими словами, если условие вернулось true или false, ! вернет обратное. Примечание: не используйте == при сравнении.
Оператор && в основном говорит, что выполняйте все, что находится справа от программы, если предыдущее условие истинно. || работает тем же способом, за исключением случаев, когда условие возвращает false.
{ (command); (command); ... } - это блок команд для выполнения один за другим. Выход первой команды не подается во вторую; это как список. Вы также можете сделать функцию той же цели.
echo - это то же самое, что и всегда: просто выплескивает текст, принятый как аргумент.
exit 1 завершает программу кодом ошибки 1 (потому что он не удался). Это последнее, потому что вы хотите, чтобы эхо выполнялось до того, как вы закончили программу.
Оказалось, что причиной проблемы является то, что иногда я забыл подключить свой USB-порт при использовании dd, или сам порт USB был свободным.
Я добавил следующие строки в сценарий оболочки, который я использовал, скомпилировал мою программу и запустил команду dd:
lsusb -d 0781:5530
! [[ $? = 0 ]] && { echo "please plug in the sandisk cruzer usb before proceeding"; exit 1; }
Длинное и подробное объяснение:
lsusb перечисляет все доступные USB-накопители или их подмножество в зависимости от ваших аргументов. Я получаю usb по определенному номеру продукта, а это значит, что я могу использовать только один конкретный usb, если я не изменю значение. Например, это конкретное число обрабатывается с помощью моего sandisk cruzer, поэтому я могу подключить его только в том случае, если я не запустил lsusb без аргументов, проверьте, где находится мой usb, и получите идентификатор и замените его на старый. [ ! d3]
Если lsusb не находит конкретное устройство, оно возвращается с кодом ошибки. [F7] содержит этот код ошибки и, как правило, в сценарии оболочки, код завершения последнего процесса. Процессы Linux (и другие, как я полагаю) возвращают 0 при успешном запуске, так что неудачный запуск (иначе USB не подключен), он вернет что-то другое, чем 0.
[[ (condition) ]] представляет условное выражение в сценариях bash, а ! представляет оператор NOT, другими словами, если условие вернулось true или false, ! вернет обратное. Примечание: не используйте == при сравнении.
Оператор && в основном говорит, что выполняйте все, что находится справа от программы, если предыдущее условие истинно. || работает тем же способом, за исключением случаев, когда условие возвращает false.
{ (command); (command); ... } - это блок команд для выполнения один за другим. Выход первой команды не подается во вторую; это как список. Вы также можете сделать функцию той же цели.
echo - это то же самое, что и всегда: просто выплескивает текст, принятый как аргумент.
exit 1 завершает программу кодом ошибки 1 (потому что он не удался). Это последнее, потому что вы хотите, чтобы эхо выполнялось до того, как вы закончили программу.