Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
$ curl ifconfig.meifconfig [interface name] | grep inet | grep -v inet6 | cut -d ":" -f 2 | cut -d " " -f 1В разных *nix-системах формат вывода ifconfig может отличаться, поэтому, возможно, придётся скорректировать скрипт под конкретную модификацию ifconfig.
ifconfig eth0|gawk '/inet addr/{print $2}'|gawk -F: '{print $2}'#!/bin/sh
IFCONFIG=`which ifconfig 2>/dev/null||echo /sbin/ifconfig`
IPADDR=`LANG=en_US.UTF-8 $IFCONFIG eth0|gawk '/inet addr/{print $2}'|gawk -F: '{print $2}'`
MSJ_NO_IP_DHCP="If you could not get a DHCP IP address please type setup and select \"Network configuration\" to set up a static IP."
echo ""
echo "Welcome to Elastix "
echo "----------------------------------------------------"
echo ""
#echo "For access to the Elastix web GUI use this URL"
echo "To access your Elastix System, using a separate workstation (PC/MAC/Linux)"
echo "Open the Internet Browser using the following URL:"
if [ "$IPADDR" = "" ]; then
echo "http://<YOUR-IP-HERE>"
echo "$MSJ_NO_IP_DHCP"
else
echo "http://$IPADDR"
fi
echo ""
/usr/local/sbin/motd.sh > /etc/motd
# Check for an interactive session
[ -z "$PS1" ] && return
alias ls='ls --color=auto'
PS1='[\u@\h \W]\$ '
bash_prompt() {
local NONE="\[\033[0m\]" # unsets color to term's fg color
# regular colors
local K="\[\033[0;30m\]" # black
local R="\[\033[0;31m\]" # red
local G="\[\033[0;32m\]" # green
local Y="\[\033[0;33m\]" # yellow
local B="\[\033[0;34m\]" # blue
local M="\[\033[0;35m\]" # magenta
local C="\[\033[0;36m\]" # cyan
local W="\[\033[0;37m\]" # white
# emphasized (bolded) colors
local EMK="\[\033[1;30m\]"
local EMR="\[\033[1;31m\]"
local EMG="\[\033[1;32m\]"
local EMY="\[\033[1;33m\]"
local EMB="\[\033[1;34m\]"
local EMM="\[\033[1;35m\]"
local EMC="\[\033[1;36m\]"
local EMW="\[\033[1;37m\]"
# background colors
local BGK="\[\033[40m\]"
local BGR="\[\033[41m\]"
local BGG="\[\033[42m\]"
local BGY="\[\033[43m\]"
local BGB="\[\033[44m\]"
local BGM="\[\033[45m\]"
local BGC="\[\033[46m\]"
local BGW="\[\033[47m\]"
case $TERM in
xterm*|rxvt*)
if [ `echo $SSH_CLIENT | wc -c` -gt 1 ]; then SSH_FLAG=1; fi
if [ `/usr/bin/whoami` = "root" ]; then ROOT_FLAG=1; fi
if ([ "$SSH_FLAG" = 1 ] && [ "$ROOT_FLAG" = 1 ]); then
local TITLEBAR='\[\033]0;[SSH] \u@\h\007\]'
PS1="$TITLEBAR${R}[!] ${G}\u${Y}@\h ${W}at ${C}\W ${W}>:/ "
elif [ "$SSH_FLAG" = 1 ]; then
local TITLEBAR='\[\033]0;[SSH] \u@\h\007\]'
PS1="$TITLEBAR${EMR}[SSH]${G}\u${Y}@\h ${W}at ${C}\W ${W}>:/ "
elif [ "$ROOT_FLAG" = 1 ]; then
local TITLEBAR='\[\033]0;\u@\h\007\]'
PS1="$TITLEBAR${R}[!] ${G}\u${Y}@\h ${W}at ${C}\W ${W}>:/ "
else
local TITLEBAR='\[\033]0;\u@\h\007\]'
PS1="$TITLEBAR${G}\u${Y}@\h ${W}at ${C}\W ${W}>:/ "
fi
;;
*)
if [ "$SSH_FLAG" = 1 ]; then
PS1="[SSH]$PS1"
fi
if [ `/usr/bin/whoami` = "root" ]; then ROOT_FLAG=1; fi
if [ "$ROOT_FLAG" = 1 ]; then
PS1="$TITLEBAR${R}[!] ${G}\u${Y}@\h ${W}at ${C}\W ${W}>:/ "
else
PS1="$TITLEBAR${G}\u${Y}@\h ${W}at ${C}\W ${W}>:/ "
fi
;;
esac
}
bash_prompt
-f (прошу прощения за разорванный комментарий).test(1) воспримет -f не как параметр, а как часть строки; таким образом, условие всегда будет истинным, независимо от наличия файла (т.к. строка всегда не пустая).
и vim подсвечивает правильно.uname -a
Linux comp 3.0.0-rc1 #1 SMP Sun Jun 5 18:17:00 MSD 2011 x86_64 x86_64 x86_64 GNU/Linux
cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=11.04
DISTRIB_CODENAME=natty
DISTRIB_DESCRIPTION="Ubuntu 11.04"
$ [ -f /etc/passwd ] && echo ok || echo fuck
ok
$ [ -f /fuck/passwd ] && echo ok || echo fuck
fuck
$ [ -f/fuck/passwd ] && echo ok || echo fuck
oktest(1) возвращает true.
Функции в bashrc. Ещё одна простая вещь