1. Ever tried creating pdf files in your unix machine ??
-t flag formats the output and ps2pds converts post script to pdf.
hyphen (-) after ps2pdf command indicates it to read input from stdin and write output to stdout.
2. Want to terminate the script after first failure ?
'set -e' thats it. it does everything.
3. Simple way to create huge file
yes, we have 'yes' in unix to do that. yes will echo what ever you give as argument.
'yes' has another interesting advantage. just imagine to answer yes to the every question by bash.
though this can be achieved just by ignoring alias ( \rm *.sh ) this is just an example to demonstrate the usage.
4. Creating dirty random number
we have $RANDOM shell variable to generate a random number may be max of 5 characters. If you wish to create a big random number use 'mcookie'. This command generates a "magic cookie," a 128-bit pseudorandom hexadecimal number, normally used as an authorization signature by the X server. This also available for use in a script as a quick and dirty random number.
$mcookie
a2cae14a060720bca183d05f165a5a8e
5. Get directory name or file name from path and file extension
6. Simple 'cut'
Just a basic example to avoid invoking forked process (cut/awk)
7. Base conversion
'bc' can convert from any base to any.
Ex: decimal to hexadecimal conversion
echo 'obase=16; ibase=10; 64' | bc # (ibase=input base, obase=output base)
This will convert 64 from base 10 to base 16.
man -t ascii | ps2pds - > ascii_man_page.pdf
-t flag formats the output and ps2pds converts post script to pdf.
hyphen (-) after ps2pdf command indicates it to read input from stdin and write output to stdout.
2. Want to terminate the script after first failure ?
'set -e' thats it. it does everything.
$> cat setexit.sh #/bin/bash set -e echo "line 1" cat tmp.x.12.12 echo "line 2" $> ./setexit.sh line 1 cat: tmp.x.12.12: No such file or directory #line 2 is not echoed
3. Simple way to create huge file
yes, we have 'yes' in unix to do that. yes will echo what ever you give as argument.
#press ctr+c after a while $yes "some random text..." > bigfile.txt
'yes' has another interesting advantage. just imagine to answer yes to the every question by bash.
$rm file.txt rm: remove regular file 'file.txt' ? #you probably give 'y' to remove it. what if you want to remove 100 such files? yes | rm *.sh
though this can be achieved just by ignoring alias ( \rm *.sh ) this is just an example to demonstrate the usage.
4. Creating dirty random number
we have $RANDOM shell variable to generate a random number may be max of 5 characters. If you wish to create a big random number use 'mcookie'. This command generates a "magic cookie," a 128-bit pseudorandom hexadecimal number, normally used as an authorization signature by the X server. This also available for use in a script as a quick and dirty random number.
$mcookie
a2cae14a060720bca183d05f165a5a8e
5. Get directory name or file name from path and file extension
#extract dir name and file name $> basename /dir1/dir2/file.txt file.txt $> dirname /dir1/dir2/file.txt /dir1/dir2 #Extract extension $> path="/dir1/dir2/file.txt" $> ext=${path##*.} $> echo $ext txt
6. Simple 'cut'
var="one two three" set -- $var a=${1}; #one b=${2}; #two c=${3}; #three
Just a basic example to avoid invoking forked process (cut/awk)
7. Base conversion
'bc' can convert from any base to any.
Ex: decimal to hexadecimal conversion
echo 'obase=16; ibase=10; 64' | bc # (ibase=input base, obase=output base)
This will convert 64 from base 10 to base 16.