Sponsored Content
Full Discussion: Shell advanced syntax?
Top Forums Shell Programming and Scripting Shell advanced syntax? Post 302464094 by DGPickett on Tuesday 19th of October 2010 09:17:28 AM
Old 10-19-2010
When writing logic, I shy away from mixed "and/or", never remembering, or liking reliance on, precedence, so I would have used some sort of parentheses to tie the first two together and indented them as not peers of the OR operand (the parentheses are the OR peer). Easy to read is esay to get right the first time, debug, read, maintain and extend. You, too, deserve readable code! The career you save/enhance might be your own.

When writing procedure, the gay spiderweb of tree logic and one return/exit at the very end or piling 5 steps in one line is not productive. If you can return or exit from anywhere, why would you not use the power of that?

It is always nicer to use a series of simple if statements of the form: if this step fails then report the error, undo any damage you have not dealt with by good design that gracefully anticipates the possibility of this failure (rollback transaction, for instance), and exit or return from this list of steps. The one step check error form keeps all aspects of one step together and away from unrelated steps, and encourages good error checking and reporting, so it is easy to develop (quick debug), read, maintain and extend. You, too, deserve readable code! The career you save/enhance might be your own.
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Help with a shell syntax

I have a variable named "xyz" Now what will the below snippet mean: if ( ${?xyz} ) then .... endif What does ? signify here. Thanks (12 Replies)
Discussion started by: vibhor_agarwali
12 Replies

2. Shell Programming and Scripting

Shell syntax

I'm having simple question here, and what's the different here? What is the "x" for? Thanks! (5 Replies)
Discussion started by: redstone
5 Replies

3. Shell Programming and Scripting

syntax of c shell

i have this program in bash shell: #!/bin/bash array=(20 20 20 20 20) i=0 j=0 awk '/%/ {print $3}' try.txt| while (read s) arr=$s i=`expr $i + 1` echo "$i" end how can i convert this into c shell? (1 Reply)
Discussion started by: npatwardhan
1 Replies

4. Post Here to Contact Site Administrators and Moderators

Where can I download the VTC - Unix Shell Scripting Advanced complete video

Where can I download the VTC - Unix Shell Scripting Advanced complete video. I don't know in which thread I should post this question.Plz help me out, or just tell me the link in the reply to this post. Thanks in advance. (0 Replies)
Discussion started by: villain41
0 Replies

5. Shell Programming and Scripting

shell variables advanced

Hi all, i have more questions but its all about variables so lets begin 1st, is possible to list all variables ? Command env display only shell variables, but what if i declared another variable? Command set display more variables but not defined by me. 2nd, what difference is between set... (24 Replies)
Discussion started by: wakatana
24 Replies

6. UNIX for Dummies Questions & Answers

| help | unix | grep (GNU grep) 2.5.1 | advanced regex syntax

Hello, I'm working on unix with grep (GNU grep) 2.5.1. I'm going through some of the newer regex syntax using Regular Expression Reference - Advanced Syntax a guide. ls -aLl /bin | grep "\(x\)" Which works, just highlights 'x' where ever, when ever. I'm trying to to get (?:) to work but... (4 Replies)
Discussion started by: MykC
4 Replies

7. Shell Programming and Scripting

Advanced error handling in shell scripts

Hi all I've got a question regarding error handling in shell scripts. My background is mainly object oriented programming languages, but for a year or so I've been doing more and more (bash) shell scripting (which I quite enjoy by the way). To handle errors in my scripts I... (3 Replies)
Discussion started by: script_man
3 Replies

8. Homework & Coursework Questions

Trouble with Advanced Shell Programming

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: I am working on a hands on project. We are creating a script for a corporate phone list. The project I am... (2 Replies)
Discussion started by: SarahBelle7858
2 Replies

9. UNIX for Beginners Questions & Answers

Need help to convert syntax to shell

Hi Folks - I need help converting a piece of code from batch to bash. Here is the code: FOR /f "eol=; tokens=1,2,3,4 delims=, " %%i in (Update_Subvars.txt) do ( ECHO alter database %%i.%%j set variable %%k %%l; ) What it's doing is retrieving the values from this file: ... (2 Replies)
Discussion started by: SIMMS7400
2 Replies

10. UNIX for Beginners Questions & Answers

Syntax error C shell

Hello, I have a newbe syntax error but I cant find it syntax error: unexpected end of file #!/bin/csh # pe request #$ -pe mpi_16 32 #### 16 core : 'mpi_16 16' || 24 core : 'mpi_24 24 ' # our Job name #$ -N test2MD #$ -S /bin/sh (1 Reply)
Discussion started by: dulceC
1 Replies
SSL_shutdown(3) 						      OpenSSL							   SSL_shutdown(3)

NAME
SSL_shutdown - shut down a TLS/SSL connection SYNOPSIS
#include <openssl/ssl.h> int SSL_shutdown(SSL *ssl); DESCRIPTION
SSL_shutdown() shuts down an active TLS/SSL connection. It sends the "close notify" shutdown alert to the peer. NOTES
SSL_shutdown() tries to send the "close notify" shutdown alert to the peer. Whether the operation succeeds or not, the SSL_SENT_SHUTDOWN flag is set and a currently open session is considered closed and good and will be kept in the session cache for further reuse. The shutdown procedure consists of 2 steps: the sending of the "close notify" shutdown alert and the reception of the peer's "close notify" shutdown alert. According to the TLS standard, it is acceptable for an application to only send its shutdown alert and then close the underlying connection without waiting for the peer's response (this way resources can be saved, as the process can already terminate or serve another connection). When the underlying connection shall be used for more communications, the complete shutdown procedure (bidirec- tional "close notify" alerts) must be performed, so that the peers stay synchronized. SSL_shutdown() supports both uni- and bidirectional shutdown by its 2 step behaviour. When the application is the first party to send the "close notify" alert, SSL_shutdown() will only send the alert and the set the SSL_SENT_SHUTDOWN flag (so that the session is considered good and will be kept in cache). SSL_shutdown() will then return with 0. If a unidirectional shutdown is enough (the underlying connection shall be closed anyway), this first call to SSL_shutdown() is sufficient. In order to complete the bidirectional shutdown handshake, SSL_shutdown() must be called again. The second call will make SSL_shutdown() wait for the peer's "close notify" shutdown alert. On success, the second call to SSL_shutdown() will return with 1. If the peer already sent the "close notify" alert and it was already processed implicitly inside another function (SSL_read(3)), the SSL_RECEIVED_SHUTDOWN flag is set. SSL_shutdown() will send the "close notify" alert, set the SSL_SENT_SHUTDOWN flag and will immediately return with 1. Whether SSL_RECEIVED_SHUTDOWN is already set can be checked using the SSL_get_shutdown() (see also SSL_set_shutdown(3) call. It is therefore recommended, to check the return value of SSL_shutdown() and call SSL_shutdown() again, if the bidirectional shutdown is not yet complete (return value of the first call is 0). As the shutdown is not specially handled in the SSLv2 protocol, SSL_shutdown() will succeed on the first call. The behaviour of SSL_shutdown() additionally depends on the underlying BIO. If the underlying BIO is blocking, SSL_shutdown() will only return once the handshake step has been finished or an error occurred. If the underlying BIO is non-blocking, SSL_shutdown() will also return when the underlying BIO could not satisfy the needs of SSL_shut- down() to continue the handshake. In this case a call to SSL_get_error() with the return value of SSL_shutdown() will yield SSL_ERROR_WANT_READ or SSL_ERROR_WANT_WRITE. The calling process then must repeat the call after taking appropriate action to satisfy the needs of SSL_shutdown(). The action depends on the underlying BIO. When using a non-blocking socket, nothing is to be done, but select() can be used to check for the required condition. When using a buffering BIO, like a BIO pair, data must be written into or retrieved out of the BIO before being able to continue. SSL_shutdown() can be modified to only set the connection to "shutdown" state but not actually send the "close notify" alert messages, see SSL_CTX_set_quiet_shutdown(3). When "quiet shutdown" is enabled, SSL_shutdown() will always succeed and return 1. RETURN VALUES
The following return values can occur: 1 The shutdown was successfully completed. The "close notify" alert was sent and the peer's "close notify" alert was received. 0 The shutdown is not yet finished. Call SSL_shutdown() for a second time, if a bidirectional shutdown shall be performed. The output of SSL_get_error(3) may be misleading, as an erroneous SSL_ERROR_SYSCALL may be flagged even though no error occurred. -1 The shutdown was not successful because a fatal error occurred either at the protocol level or a connection failure occurred. It can also occur if action is need to continue the operation for non-blocking BIOs. Call SSL_get_error(3) with the return value ret to find out the reason. SEE ALSO
SSL_get_error(3), SSL_connect(3), SSL_accept(3), SSL_set_shutdown(3), SSL_CTX_set_quiet_shutdown(3), SSL_clear(3), SSL_free(3), ssl(3), bio(3) 0.9.7a 2001-08-20 SSL_shutdown(3)
All times are GMT -4. The time now is 11:17 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy