Sponsored Content
Top Forums Shell Programming and Scripting Script to get checksum of itself Post 302991384 by drl on Thursday 9th of February 2017 07:47:31 PM
Old 02-09-2017
Hi.

Here is a brief example of a self-checksumming, creation and verification script on file s1:
Code:
#!/usr/bin/env bash

# @(#) (calculated)     Demonstrate checksum as script name.

LC_ALL=C ; LANG=C ; export LC_ALL LANG
pe() { for _i;do printf "%s" "$_i";done; printf "\n"; }
pl() { pe;pe "-----" ;pe "$*"; }
em() { pe "$*" >&2 ; }
db() { ( printf " db, ";for _i;do printf "%s" "$_i";done;printf "\n" ) >&2 ; }
db() { : ; }
# C=$HOME/bin/context && [ -f $C ] && $C

# Calculate checksum, compare with name.
program=$( basename $0 )
checksum=$( cksum < $0 )
name=$( echo "$checksum" | sed 's/ /_/' )

# Intermediate output if debugging.
db " program name        = $program"
db " calculated checksum = $name"

if [ "$name" != "$program" ]
then
  db " Checksums [ $name | $program ] do not match, aborting."
  em " Checksums [ $name | $program ] do not match, aborting."
  exit 1
else
  db " Checksums [$name] match, continuing."
fi

echo ""
echo " Hello, world from $program."

exit 0

Running it as is will fail, but produce a checksum:
Code:
$ ./s1
 Checksums [ 2207913779_881 | s1 ] do not match, aborting.

Now we can copy the script to a a filename that is the string of the checksum:
Code:
cp s1 2207913779_881

And now run the code from the new filename:
Code:
$ ./2207913779_881 

 Hello, world from 2207913779_881.

Testing to see if the checksum works by changing the period at the end of the comment:
Code:
# @(#) (calculated) Demonstrate checksum as script name;

and re-running the script:
Code:
$ ./2207913779_881 
 Checksums [ 1941515329_881 | 2207913779_881 ] do not match, aborting.

See man pages for details.

Best wishes ... cheers, drl
This User Gave Thanks to drl For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

First time help, please - checksum script...

Hello all! I'm a recent college grad now working for a contractor. I've been tasked with writing a program/script that will verify that something was copied correctly. This is how the system is used - The user will get a distribution tape (a 4mm tape DDS3). On this tape are a bunch of... (6 Replies)
Discussion started by: kapolani
6 Replies

2. Shell Programming and Scripting

Checksum question

in HPUX: I am copying oracle datafiles from one mountpoint to another the total size is about 250Gb. I wanted to perform a checksum on the target and make sure the files came overy properly. Mountpoints: /s01 to /u01 /s02 to /u02 I tried using "SUM" on these mountpoints but its taking... (1 Reply)
Discussion started by: jigarlakhani
1 Replies

3. SCO

checksum

Does anyone know the answer to this? When I run "sum -r" on a file that I've down loaded from the sco website, the 1st set of numbers differs from the checksum on the download page but the 2nd set matches. If I try to install the patch, I get errors. Anyone has an answer? (3 Replies)
Discussion started by: jn5519
3 Replies

4. Solaris

checksum

Anyone can tell me the different between "cksum" and "sum" command on Solaris? I read the man pages but still not get it. And how to display the md5 checksum for a file. Thanks, (1 Reply)
Discussion started by: redstone
1 Replies

5. Shell Programming and Scripting

Extracting the checksum

I wanted a script that can give the checksum of a particular zipped file. Can somebody help me in writing a shell script in getting the checksum of a particular tar file. (1 Reply)
Discussion started by: vkca
1 Replies

6. Shell Programming and Scripting

FTP and Checksum

Hi Guys, Sometimes, I have a problem with transferred files in ftp session. Thats why I want to produce checksum value in my local server and remote server. But I could not find anyway to produce checksum value of transferred files in remote server. Do you have any idea? Thanks, Emre (3 Replies)
Discussion started by: ce_emre21
3 Replies

7. IP Networking

Wireshark UDP checksum bad checksum

Hello I am communicating with two devices using my computer over UDP protocol. The application is running fine. When I monitored the UDP traffic using Wireshark software, I found that there were too many Checksum errors. Please find attached the png file showing this error. I am about to... (0 Replies)
Discussion started by: AustinCann
0 Replies

8. Solaris

MD5 checksum

Hi Guys, I have about MD5 checksum so many times but I can't figure out how to use it. Can someone please show me how to perform an MD5 checksum? Thanks a lot guys. (1 Reply)
Discussion started by: cjashu
1 Replies

9. Shell Programming and Scripting

Needed script to FTP a File and generate a quality checksum file

hi all i want a script to FTP a file and should generate a quality checksum file means when I FTP a file from one server to another server it should generate a QC file which should contain timestamp,no.of records in that file Thanks in advance saikumar (3 Replies)
Discussion started by: hemanthsaikumar
3 Replies

10. UNIX for Beginners Questions & Answers

Need UNIX script to check checksum and dummy file creation.

Hi Folks, I need a UNIX script which will copy files(Table wise) from source directory to destination directory (Under table directory) and also creates 2 additional files after getting copied to destination directory with extension .pdy and .ldy , . pdy file will be zero byte file should get... (4 Replies)
Discussion started by: Nicks1412
4 Replies
All times are GMT -4. The time now is 09:13 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy