Sponsored Content
Top Forums Shell Programming and Scripting Injecting into shell history with perl? Post 302525060 by turk451 on Wednesday 25th of May 2011 02:50:25 PM
Old 05-25-2011
Quote:
I have an old fashioned console (non-GUI) style perl program that asks dozens of questions. Incorporating readline might mitigate this a bit. What I would like to do is enhance the logic of this program to check ARGV before prompting the console (user) for information and then, after all the questions have been answered, artificially inject the completed command line into the shell history so the command can be re-run again with identical inputs by just hitting the up-arrow. This will save them from having to type all that stuff in again.
I don't think it's a good idea to hack the history to implement another hack in your program.

The ARGV stuff should be easy. Just check the length of ARGV array to see if you got enough command-line inputs. Also, you may want to validate the input data just as a good practice. Even if a user has supplied enough arguments, they could still be badly formatted. Also, be sure to display to the user what the inputs should be.

As for repeated executions of the same script with different inputs, you could easily modify the script to function in a loop, and provide some option for the used to update each value every time the loop runs. What I imagine is a prompt that will default to the previous values used for each parameter of the call, then ask for an updated value. If the user enters nothing, then it would just use the default. If the user enters some new value, it would use that new value.
 

8 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

korn shell script to keep history of same file

Hello, How do I write a korn shell that will rename file with the current date. What I want to do is, I have a file that is re-written every day. But instead, I want to keep a 14 day history of the file. So I want to write a script that will rename the current file with a date attached to the... (2 Replies)
Discussion started by: watson2000
2 Replies

2. HP-UX

shell history

When I try to run previous commands from the shell history, some irrelevent output is given (something like a script coding). What is the reason for this? (1 Reply)
Discussion started by: sube
1 Replies

3. Shell Programming and Scripting

injecting new line in sed substitution (hold space)

Morning, people! I'd like to call upon your expertise again, this time for a sed endeavor. I've already searched around the forums, didn't find anything that helped yet. background: Solaris 9.x, it's a closed system and there are restrictions to what is portable to it. So let's assume I... (4 Replies)
Discussion started by: ProGrammar
4 Replies

4. Programming

Unix shell with history features like in bash

hii to all i am developing a simple unix shell in c i want to add history feature in that how could i do that plz help if there is any tutorial or website plz put it here history feature should be like that in bash, when press up key show the previous command typed in console plz be... (1 Reply)
Discussion started by: vipin_jss
1 Replies

5. UNIX for Advanced & Expert Users

History to Another file [local user history , but root access]

Hi all, My need is : 1. To know who , when , which command used. 2. Local user should not delete this information. I mean , with an example , i can say i have a user user1 i need to give all the following permissions to user1, : a. A specific directory other than his home... (3 Replies)
Discussion started by: linuxadmin
3 Replies

6. UNIX for Dummies Questions & Answers

History to Another file [local user history , but root access]

Hi all, My need is : 1. To know who , when , which command used. 2. Local user should not delete this information. I mean , with an example , i can say i have a user user1 i need to give all the following permissions to user1, : a. A specific directory other than his home... (1 Reply)
Discussion started by: sriky86
1 Replies

7. UNIX for Dummies Questions & Answers

How to make each login shell history independent for same account?

Hello All, Many developers in our company use same application account to log in Linux Box for code development, how can i redirect my log in shell history to a different file to avoid history being shown to others or accidentally execute the same command which i or others executed? Thank you. (4 Replies)
Discussion started by: Ariean
4 Replies

8. Shell Programming and Scripting

Converting shell to Perl I run into shell built in function trap and need alternative in Perl

I am working on converting shell to Perl script. In shell we have built in function trap Do you know alternative in Perl or actually we don't need it? Thanks for contribution (3 Replies)
Discussion started by: digioleg54
3 Replies
chsh(1) 						      General Commands Manual							   chsh(1)

NAME
chsh - change default login shell SYNOPSIS
login-name [shell] login-name [shell] login-name [shell] login-name [shell] DESCRIPTION
The command changes the login-shell for a user's login name in the repository (see passwd(1)). The DCE repository is only available if Integrated Login has been configured; see auth.adm(1M). If Integrated Login has been configured, other considerations apply. A user with appropriate DCE privileges is capable of modifying a user's shell; this is not dependent upon superuser privileges. If the repository is not specified (as in [login-name]), the login shell is changed in the file only. Run after running to make sure the information was processed correctly. Notes The command is a hard link to the command. When is executed, actually the command gets executed with appropriate arguments to change the user login shell in the repository specified in command line. If no repository is specified, the login shell is changed in the file. Arguments login-name A login name of a user. shell The absolute path name of a shell. If the file exists, the new login shell must be listed in that file. Otherwise, you can specify one of the standard shells listed in the getusershell(3C) manual entry. If shell is omitted, it defaults to the POSIX shell, Options The following option is recognized: Specify the repository to which the operation is to be applied. Supported repositories include and Security Restrictions You must have appropriate privileges to use the optional login-name argument to change another user's login shell. NETWORKING FEATURES
NFS File can be implemented as a Network Information Service (NIS) database. EXAMPLES
To change the login shell for user to the default: To change the login shell for user to the C shell: To change the login shell for user to the Korn shell in the DCE registry: WARNINGS
If two or more users try to write the file at the same time, a passwd locking mechanism was devised. If this locking fails after subse- quent retrying, terminates. AUTHOR
was developed by HP and the University of California, Berkeley. FILES
SEE ALSO
chfn(1), csh(1), ksh(1), passwd(1), sh(1), sh-posix(1), getusershell(3C), pam(3), passwd(4), shells(4). chsh(1)
All times are GMT -4. The time now is 04:39 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy