Posted: . At: 2:00 PM. This was 2 years ago. Post ID: 15762
Page permalink. WordPress uses cookies, or tiny pieces of information stored on your computer, to verify who you are. There are cookies for logged in users and for commenters.
These cookies expire two weeks after they are set.


Very interesting Bash shell script for creating a Webm clip from a movie.


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

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.