Programming This forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game. |
Notices |
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
Are you new to LinuxQuestions.org? Visit the following links:
Site Howto |
Site FAQ |
Sitemap |
Register Now
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
|
 |
09-04-2004, 10:03 PM
|
#1
|
LQ Newbie
Registered: Sep 2004
Posts: 4
Rep:
|
bash login script
Hi, I am very new at bash scripting, and I was looking for a script that tells me the # of times I have logged in. Specifically one that uses a counter. Anyone out there have something like that, that I could look at?
Thanks,
Sean
|
|
|
09-04-2004, 10:26 PM
|
#2
|
LQ Newbie
Registered: Aug 2004
Location: Location??? Where I am is top secret, if I tell you, I have to kill you.
Distribution: College, Slack
Posts: 24
Rep:
|
Ugh.... I could write something in perl, not bash. Though you could just look in .bash_history and it should be in there.
If not let me know, and I will come up with a quick perl script, for it.
|
|
|
09-05-2004, 12:48 AM
|
#3
|
Senior Member
Registered: Jan 2003
Posts: 2,786
|
The .bash_history file contains a list of the previous commands executed. I don't know if it contains any login information; I would have to double-check.
If you'd like to count how many times you have logged in since deciding to keep track of it, then this is one way to do it:
1. Edit your ~/.bash_profile to include this:
Code:
counter_file="~/.login_counter"
if [ -e ${counter_file} ] ; then
expr $( cat ${counter_file} ) + 1 > ${counter_file}
else
echo 1 > ${counter_file}
fi
unset counter_file
2. When you want to know how many times you've logged in, execute this command (or set up an alias):
Code:
cat ~/.login_counter
Last edited by Dark_Helmet; 09-05-2004 at 12:50 AM.
|
|
|
09-05-2004, 01:07 AM
|
#4
|
Member
Registered: Aug 2004
Posts: 137
Rep:
|
The main idea is that u will make a file in ur home directory and u will put a counter in it.Everytime when ever u will login than All the scripts written in .bash_profile will be executed.So open the counter file..increment the counter and than print the counter and than close it.
|
|
|
09-05-2004, 08:30 AM
|
#5
|
LQ Newbie
Registered: Sep 2004
Posts: 4
Original Poster
Rep:
|
That script worked really well, thanks. Now I need an explanation on the following. I have read on many bash script HOW-TO sites that if you want to put multiple commands on one line, separate them with a ";"
echo -n "You have logged in: " ; cat .login_counter ; echo "times"
All the text except for "times" shows up on the same line.
You have logged in: 5
times
I also tried echo -n. That doesn't work either!
What am I doing wrong?
Sean
Last edited by seanatis; 09-05-2004 at 08:39 AM.
|
|
|
09-05-2004, 01:34 PM
|
#6
|
Senior Member
Registered: Jan 2003
Posts: 2,786
|
The problem is with the cat command in the middle. cat will add a newline when it reaches the end of the file. You can fix it with this:
Code:
echo -n "You have logged in "; echo -n $( cat ~/.login_counter ); echo "times"
I'm assuming you're using that to create an alias. Otherwise, it's the same as three commands on three separate lines.
If this is part of a script, then it can be done a bit more cleanly using a variable
|
|
|
09-06-2004, 08:00 AM
|
#7
|
LQ Newbie
Registered: Sep 2004
Posts: 4
Original Poster
Rep:
|
Exactly what I was looking for. Thanks!
|
|
|
All times are GMT -5. The time now is 11:04 AM.
|
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.
|
Latest Threads
LQ News
|
|