This is a very useful Bash shell script, this will create a Webm clip from a movie. This shows how to get parameters in a Bash script easily.
#!/bin/bash while [[ "$#" -gt 0 ]]; do case $1 in -f|--filename) filename="$2"; shift ;; -t|--timestamp) timestamp="$2"; shift ;; -o|--outfile) outfile="$2"; shift ;; *) echo "Unknown parameter passed: $1"; exit 1 ;; esac shift done echo "Parameters passed: $filename $timestamp $outfile." ffmpeg -i $filename -c:v libvpx -b:v 2700k -ss $timestamp -t 15 \ -c:a libvorbis -b:a 384k -sn -copyts -threads 4 $outfile |
This gives very high-quality results from a simple script, just run it as shown below.
./my.sh -f My.Movie.avi -t 00:01:23 -o out.webm |
So, Bash is very flexible. Getting command-line parameters is very easy with this scripting language and it is a lot of fun.
This is how to add colour support to the ls command in Linux. Put this in your ~/.bashrc and then it will work when the user runs the ls(1) command.
# enable color support of ls and also add handy aliases if [ -x /usr/bin/dircolors ]; then test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" alias ls='ls --color=auto' #alias dir='dir --color=auto' #alias vdir='vdir --color=auto' #alias grep='grep --color=auto' #alias fgrep='fgrep --color=auto' #alias egrep='egrep --color=auto' fi |
Add colour support to the terminal. This adds a coloured prompt to the Bash terminal. Put this in your ~/.bashrc.
# set variable identifying the chroot you work in (used in the prompt below) if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then debian_chroot=$(cat /etc/debian_chroot) fi # set a fancy prompt (non-color, unless we know we "want" color) case "$TERM" in xterm-color) color_prompt=yes;; esac # uncomment for a colored prompt, if the terminal has the capability; turned # off by default to not distract the user: the focus in a terminal window # should be on the output of commands, not on the prompt #force_color_prompt=yes if [ -n "$force_color_prompt" ]; then if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then # We have color support; assume it's compliant with Ecma-48 # (ISO/IEC-6429). (Lack of such support is extremely rare, and such # a case would tend to support setf rather than setaf.) color_prompt=yes else color_prompt= fi fi if [ "$color_prompt" = yes ]; then PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' else PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' fi unset color_prompt force_color_prompt # If this is an xterm set the title to user@host:dir case "$TERM" in xterm*|rxvt*) PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1" ;; *) ;; esac |