04-21-2010
Quote:
Originally Posted by
bakunin
True. You can guarantee that "$1" will never contain a whitespace, then?
It doesn't matter whether $1 contains white space or not. That is not literal whitespace. $1 could be $' \t\n' or all spaces and it wouldn't matter.
Literal whitespace means an actual space on the command line, not contained in a variable.
(I should also include other characters special to the shell, such as a semi-colon.)
Quote:
Quoting variables out of habit, even in cases where it is not necessarily required, is just staying out of troubles, doing otherwise is asking for them.
Doing it out of habit, instead of out of knowledge, is not good practice.
Doing it where it is never necessary is not good practice.
Quote:
Of course there is a point and i named it: precaution. That in this specific case it would not be necessary i did say explicitly said in the very next sentence, explaining on a counterexample what i meant.
We might disagree philosophically about what constitutes robust programming practices: i believe that many aspects of any often-employed activity (like, for instance, programming for a programmer) is driven by habits as much as conscient effort. My experience is that when i act habitually in a safe way i am generally better off then when i habitually employ a potential hazard - i will probably forget to take the necessary precaution in the one case where it will matter.
To come back from the general to the problem at hand, variable expansion: all i "risk" are two keystrokes and 2 bytes on a disk - compared to the avoided potential problems in cases like the one i cited this is not too much, i suppose.
There is no potential problem in not quoting the assignment of one variable (or a concatenation of variables or strings not containing special characters) to a variable.
OK, I'll agree that quoting the assignment doesn't hurt, but it is not necessary, and certainly not more robust.
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
I'm writing a bash script to search the contents of a postfix log. To keep the script's output readable (since multiple lines from the log file need to be echo'ed) I am setting the IFS variable to an empty string so that the line breaks in my grep results are preserved. I am storing the results... (4 Replies)
Discussion started by: retrovertigo
4 Replies
2. Shell Programming and Scripting
Hi All,
I need to pass a variable to perl script from bash script, where in perl i am using if condition. Here is the cmd what i am using in perl
FROM_DATE="06/05/2008"
TO_DATE="07/05/2008"
"perl -ne ' print if ( $_ >="$FROM_DATE" && $_ <= "$TO_DATE" ) ' filename"
filename has... (10 Replies)
Discussion started by: arsidh
10 Replies
3. Shell Programming and Scripting
Hi,
I use AIX (ksh) and Linux (bash) servers. I'm trying to do scripts to will run in both ksh and bash, and most of the time it works. But this time I don't get it in bash (I'm more familar in ksh).
The goal of my script if to read a "config file" (like "ini" file), and make various report.... (2 Replies)
Discussion started by: estienne
2 Replies
4. Shell Programming and Scripting
Hi, I've been running code which very frequently calls books.csv. e.g:
grep -i horror books.csv > tempExcept, I'm trying to move away from using temporary files or frequently calling books.csv to improve efficiency. So I tried something like
bookfile=$(cat books.csv)
grep -i horror... (4 Replies)
Discussion started by: Quan
4 Replies
5. Shell Programming and Scripting
have a script that calls child scripts depending on conditions. All of the child scripts source in a common file that contains shared functions.
At the moment each script has to source this file itself, is there a way for the master script to automagically source the file for them?
For... (3 Replies)
Discussion started by: redman
3 Replies
6. Shell Programming and Scripting
Hello,
The task is quite simple. I need to initialise а string variable and assign to it a very long value. For the reason of readability I want to devide this long value into equal parts and place each part at a separate line.
For instance, I have -
... (1 Reply)
Discussion started by: Pretoria
1 Replies
7. Shell Programming and Scripting
Suppose I have a file named Stuff in the same directory as my script. Does the following assign the file Stuff to a variable?
Var="Stuff"
Why doesn't this just assign the string Stuff? Or rather how would I assign the string Stuff to a variable in this situation?
Also, what exactly is... (3 Replies)
Discussion started by: Riker1204
3 Replies
8. Shell Programming and Scripting
while i've used arrays to work with variables, i've never used them to loop through a set of strings and wanted to ask the community for some feedback or assistance.
let me be specific. here's my code:
# URL port Variables
port2195=`nc -z $url2195 2195`
port2196=`nc -z $url2196 2196`... (5 Replies)
Discussion started by: hungryd
5 Replies
9. Shell Programming and Scripting
Hello,
I am new to Linux and studying to become a Unix System Admin. I am taking a course in which I was practicing creating a bash script to ping a particular IP address. The script can be found below:
#/bin/bash
echo "Enter the IP address"
read ip
if
then
ping -c 1 $ip
if ;... (3 Replies)
Discussion started by: shah9250
3 Replies
10. Shell Programming and Scripting
Hello All,
I have a file of ip addresses called activeips.txt
What I'm trying to do is run a simple bash script that has a loop in it. The loop is a cat of the IP addresses in the file.
The goal is to run 2 nmap commands to give me outputs where each address in the list has an OS... (11 Replies)
Discussion started by: Dirk_Pitt
11 Replies
DDB(8) BSD System Manager's Manual DDB(8)
NAME
ddb -- configure DDB kernel debugger properties
SYNOPSIS
ddb capture [-M -core] [-N -system] print
ddb capture [-M -core] [-N -system] status
ddb script scriptname
ddb script scriptname=script
ddb scripts
ddb unscript scriptname
ddb pathname
DESCRIPTION
The ddb utility configures certain aspects of the ddb(4) kernel debugger from user space that are not configured at compile-time or easily
via sysctl(8) MIB entries.
To ease configuration, commands can be put in a file which is processed using ddb as shown in the last synopsis line. An absolute pathname
must be used. The file will be read line by line and applied as arguments to the ddb utility. Whitespace at the beginning of lines will be
ignored as will lines where the first non-whitespace character is '#'.
OUTPUT CAPTURE
The ddb utility can be used to extract the contents of the ddb(4) output capture buffer of the current live kernel, or from the crash dump of
a kernel on disk. The following debugger commands are available from the command line:
capture [-M core] [-N system] print
Print the current contents of the ddb(4) output capture buffer.
capture [-M core] [-N system] status
Print the current status of the ddb(4) output capture buffer.
SCRIPTING
The ddb utility can be used to configure aspects of ddb(4) scripting from user space; scripting support is described in more detail in
ddb(4). Each of the debugger commands is available from the command line:
script scriptname
Print the script named scriptname.
script scriptname=script
Define a script named scriptname. As many scripts contain characters interpreted in special ways by the shell, it is advisable to
enclose script in quotes.
scripts
List currently defined scripts.
unscript scriptname
Delete the script named scriptname.
EXIT STATUS
The ddb utility exits 0 on success, and >0 if an error occurs.
EXAMPLES
The following example defines a script that will execute when the kernel debugger is entered as a result of a break signal:
ddb script kdb.enter.break="show pcpu; bt"
The following example will delete the script:
ddb unscript kdb.enter.break
For further examples, see the ddb(4) and textdump(4) manual pages.
SEE ALSO
ddb(4), textdump(4), sysctl(8)
HISTORY
The ddb utility first appeared in FreeBSD 7.1.
AUTHORS
Robert N M Watson
BUGS
Ideally, ddb would not exist, as all pertinent aspects of ddb(4) could be configured directly via sysctl(8).
BSD
December 24, 2008 BSD