This means that you are supposed to type this command and report on the output. I start out with this in my command window:
That $ is a prompt. It means that I can type a command. So I start:
At this point I have typed "e", "c", "h", "o" and now I need to press the space bar. Then I can type the rest of the command.
Now when I enter the "Enter" button the command will be run and it will display some output.
But I should not just say "it produced some output" or "it typed some stuff" or even "it showed the name of my shell". We want the exact output. Character by character. We do not want a summary or a general description of the output.
So the ideal response to vgersh99's question is to do something like this:
At this point vgersh99 would know that my shell is actually ksh. Now you need to do that same thing. Get a prompt from your shell. Type in echo $0. And then report back with the answer you got. I have faith in you. I think that you can do this.
I know that pushd/popd are built into csh, but I'm trying to run a set of 3rd party make files that use sh.
My problem is that sh simply squawks that pushd and popd are not found, then the make dies due to the error.
I've searched the entire system, and they are indeed missing. Evidently SGI... (3 Replies)
This question is related to pushd and popd. After I have pushed directories, I would like to see what are the contents of the stack currently before I execut e popd. The reason is that many a times we forget (or can get confused when multiple shells are open) what we pushed and would like to first... (4 Replies)
Hi All,
im using pushd and popd as below , but im getting different results, it is not consistent.
pushd <DIR>
pkzip <ZIP FILE NAME> *
popd
echo " Hi"
it is going into the DIR as expected and while zipping it, in between it got suspended by itself and executed the remaining step... (1 Reply)
I'm looking at a script for a pushd function in my bash book:
DIRSTACK=""
export DIRSTACK
pushd ()
{
dirname=$1
DIRSTACK="$dirname ${DIRSTACK:-$PWD' '}"
cd ${dirname:?"missing directory name."}
echo "$DIRSTACK"
}
Wanted to ask if someone could explain what's... (0 Replies)
I'm learning about pushd and popd, and the section in my book defines them as functions to put in the .profile file, but I've noticed that the commands obviously already exist. I was wondering -- how do I find out where these commands are? Is there some kind other command/series of commands I can... (11 Replies)
I am trying to get a listing of ALL directories only under /export (as an example). I can get all the dirs directly under /export but I need any sub dirs under those dirs. I've looked (here and google) but can not find anything that works (4 Replies)
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)
Howdy,
I'm working through the book LEARN PYTHON THE HARD WAY, Appendix: Command Line Crash Course.
I got to wondering if pushd and popd are really ever used all that much?
Thank you for your insights,
DN (4 Replies)
Discussion started by: danuke
4 Replies
LEARN ABOUT DEBIAN
shell-quote
SHELL-QUOTE(1p) User Contributed Perl Documentation SHELL-QUOTE(1p)NAME
shell-quote - quote arguments for safe use, unmodified in a shell command
SYNOPSIS
shell-quote [switch]... arg...
DESCRIPTION
shell-quote lets you pass arbitrary strings through the shell so that they won't be changed by the shell. This lets you process commands
or files with embedded white space or shell globbing characters safely. Here are a few examples.
EXAMPLES
ssh preserving args
When running a remote command with ssh, ssh doesn't preserve the separate arguments it receives. It just joins them with spaces and
passes them to "$SHELL -c". This doesn't work as intended:
ssh host touch 'hi there' # fails
It creates 2 files, hi and there. Instead, do this:
cmd=`shell-quote touch 'hi there'`
ssh host "$cmd"
This gives you just 1 file, hi there.
process find output
It's not ordinarily possible to process an arbitrary list of files output by find with a shell script. Anything you put in $IFS to
split up the output could legitimately be in a file's name. Here's how you can do it using shell-quote:
eval set -- `find -type f -print0 | xargs -0 shell-quote --`
debug shell scripts
shell-quote is better than echo for debugging shell scripts.
debug() {
[ -z "$debug" ] || shell-quote "debug:" "$@"
}
With echo you can't tell the difference between "debug 'foo bar'" and "debug foo bar", but with shell-quote you can.
save a command for later
shell-quote can be used to build up a shell command to run later. Say you want the user to be able to give you switches for a command
you're going to run. If you don't want the switches to be re-evaluated by the shell (which is usually a good idea, else there are
things the user can't pass through), you can do something like this:
user_switches=
while [ $# != 0 ]
do
case x$1 in
x--pass-through)
[ $# -gt 1 ] || die "need an argument for $1"
user_switches="$user_switches "`shell-quote -- "$2"`
shift;;
# process other switches
esac
shift
done
# later
eval "shell-quote some-command $user_switches my args"
OPTIONS --debug
Turn debugging on.
--help
Show the usage message and die.
--version
Show the version number and exit.
AVAILABILITY
The code is licensed under the GNU GPL. Check http://www.argon.org/~roderick/ or CPAN for updated versions.
AUTHOR
Roderick Schertler <roderick@argon.org>
perl v5.8.4 2005-05-03 SHELL-QUOTE(1p)