Help understanding what this ls -l command is checking in a script


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Help understanding what this ls -l command is checking in a script
# 1  
Old 10-09-2019
Help understanding what this ls -l command is checking in a script

Hello,

we have a script that has the two following lines:

Code:
ssh -qno StrictHostKeyChecking=no -o ConnectTimeout=1 user@IP 'ls -l /home/opsmgrsvc >/dev/null 2>&1' > /dev/null 2>&1
 status="$(echo $?)"

I can't understand what these two lines are doing?
When I execute the first line nothing is output. I get that the command is being directed somewhere that is not shown. And when I execute the echo $? line I get a number. Not sure what this number means though? Is this command checking if I can successfully login to this server or not?

Also, is there a way to concatenate the two lines into one command line instruction to return the value?

Thank you.

Last edited by jim mcnamara; 10-09-2019 at 07:37 PM..
# 2  
Old 10-09-2019
The command connects to a remote server, does and ls -l of a directory, which list files in the directory on the remote machine. The command is between the tic characters '

The output of the ls command goes into the bit bucket (kind of like a black hole for output). The status of the ssh connect and ls (success ( == 0 ) or failure code (== non-zero) ) is stored in the variable $status.

A sort of roundabout way to see if the remote machine is awake on the network, and if the directory exists over there. The options -qno for ssh:
-n used to run in the background when ssh does not read from user's stdin (terminal)
-q quiet mode, stops extra messages
-o (option) turn off strict host key checking. I wonder why...
This User Gave Thanks to jim mcnamara For This Post:
# 3  
Old 10-09-2019
Thanks very much Jim for this quick reply.

This script was created to inventory hundreds of servers I suspect they used the -o command to turn off strict host key checking so the script wouldn't get stuck logging into a new server. I'm adding ssh passwordless to our script and will not need that switch in the future.

Thank you for explaining what this command is doing. is there a list of return codes (non zero) that denote what we couldn't get in? For now 0 being success on logging in and non-zero meaning fail is probably enough for us.

Is there a way to concatenate the two commands to save the result of the first command into the status variable all on one line? I've tried something like:

Code:
ssh -qno StrictHostKeyChecking=no -o ConnectTimeout=1 user@IP 'ls -l /home/opsmgrsvc >/dev/null 2>&1' > /dev/null 2>&1 &&  status="$(echo $?)"

And then I tried using:

Code:
echo $status

to see what was in the variable but it was empty. Am I close in putting this into one line?
# 4  
Old 10-10-2019
Code:
whatever command ; status="$?"

# 5  
Old 10-10-2019
In a standard shell the status variable is $?
In csh it is $status.
bash is a standard shell, and also has $status as a synonym for $?
# 6  
Old 10-16-2019
Quote:
Originally Posted by MadeInGermany
In a standard shell the status variable is $?
In csh it is $status.
bash is a standard shell, and also has $status as a synonym for $?
Code:
tyler@gentoo ~ $ echo $SHELL
/bin/bash
tyler@gentoo ~ $ echo $status

tyler@gentoo ~ $ echo $?
0
tyler@gentoo ~ $

# 7  
Old 10-17-2019
My bad, bash does not have $status.
It is zsh that has $status as a synonym for $?
This User Gave Thanks to MadeInGermany For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Command script for checking a file existence

Hello, I have a directory where sometimes appear a certain file name - and I'd like to be notified by email when that happens... so what command or script I may use? e.g. if there's a file named "adam" in the directory named "dir1" then send a mail to "abc@abc.com".. it needs to permanently... (5 Replies)
Discussion started by: netrom
5 Replies

2. Shell Programming and Scripting

awk : Need Help in Understanding a command

Hello I am working on a Change request and Stuck at a point. The below awk command is used in the function. float_test ( ) { echo | awk 'END { exit ( !( '"$1"')); }' } I understand that awk 'END' is used to add one line at the end and exit is used to end the script with an error... (4 Replies)
Discussion started by: rahul2662
4 Replies

3. UNIX for Advanced & Expert Users

Checking missing data's sequence (shell script | UNIX command)

Dear All members, i have some trouble here, i want to ask your help. The case is: I have some data, it's like: -ABCD1234 -ABCD1235 -ABCD1237 -BCDE1111 -BCDE1112 -BCDE1114 there is some missing data's sequence (the format is: ABCD = name 1234 = sequence). I want to print the... (2 Replies)
Discussion started by: septian.tri
2 Replies

4. UNIX for Dummies Questions & Answers

understanding sed command

Hi Friends, I need a small help in understanding the below sed command. $ cat t4.txt 1 root 1 58 0 888K 368K sleep 4:06 0.00% init 1 root 1 58 0 888K 368K sleep 4:06 0.00% init last $ sed 's/*$//' t4.txt 1 root 1 58 0 888K ... (3 Replies)
Discussion started by: forroughuse
3 Replies

5. Shell Programming and Scripting

Understanding 'find' command

I want to understand what does this command do:confused::confused: find . \( -type f -o -type 1 \) Plz someone explain me ! Thanks much in advance!! (2 Replies)
Discussion started by: sears
2 Replies

6. Solaris

Understanding 'du' command

Hi I have a questions related 2 commands : 'du' and 'ls'. Why is the difference between output of 'du' and 'ls' cmd's ? Command 'du' : ------------------ jakubn@server1 /home/jakubn $ du -s * 4 engine.ksh 1331 scripts 'du -s *' ---> shows block count size on disk (512 Bytes... (5 Replies)
Discussion started by: presul
5 Replies

7. Shell Programming and Scripting

understanding mv command

hi i was moving a file from one directory to another with the following cmmand mv /home/hsghh/dfd/parent/file.txt . while doing so i i accidently mv /home/hsghh/dfd/dfd . although i gave ctrl c and terminate the move command some of the file are missing in the parent directory and... (1 Reply)
Discussion started by: saravanan71184
1 Replies

8. Shell Programming and Scripting

understanding the kill command

Hi Guys, I like to know if i have a process which triggers 10 different child processes. How to identify out of the 11 processes running which is the parent process and what are the child process? And if i kill the parent process will the child process be killed.. if not is there a way to... (2 Replies)
Discussion started by: mac4rfree
2 Replies

9. Shell Programming and Scripting

understanding the sed command

Guys, I am trying to understand the sed command here. adx001 $ a=/clocal/dctrdata/user/dctrdat1/trdroot/recouncil adx001 $ b=`echo $a | sed 's/\//\\\\\//g'` adx001 $ echo $b \/clocal\/dctrdata\/user\/dctrdat1\/trdroot\/recouncil The sed command i took it from the script. Please... (3 Replies)
Discussion started by: mac4rfree
3 Replies

10. UNIX for Dummies Questions & Answers

Need help understanding script command

We use a UNIX-based system (Lawson) at work and I was given this command to request a data extract from the db admin. The only thing I really understand is the last line as it appears to be joining the files created from the first three lines into one. Is there anyone who can help me breakdown the... (4 Replies)
Discussion started by: KGee
4 Replies
Login or Register to Ask a Question