strcat equivalent in shell scripting


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting strcat equivalent in shell scripting
# 1  
Old 12-22-2008
strcat equivalent in shell scripting

Hi all,
How does string concatenation work in shell scripting?

I basically have a variable called "string" and I want to add the strings "aaa" "bbb" "ccc" "ddd" to the variable "string". These strings would be added based on some conditions and separated by spaces . So "string" might look like
string = aaa bbb ccc

Any ideas? Thanks.
# 2  
Old 12-22-2008
Simply append

You can use like -

String="$a $b $c"

where a="aaa"
b="bbb"
c="ccc"
# 3  
Old 12-22-2008
STRING1=my
STRING2=string
STRING3="$STRING1 $STRING2"
echo $STRING3
> my string
Padow
# 4  
Old 12-22-2008
Thanks guys, but lets assume that I have a really long list, in which case I cannot be assigning variables for all these data values.
# 5  
Old 12-22-2008
Quote:
Originally Posted by felixmat1
Thanks guys, but lets assume that I have a really long list, in which case I cannot be assigning variables for all these data values.
An example would help - a sample input and a desired output as always!

Last edited by vgersh99; 12-22-2008 at 04:15 PM..
# 6  
Old 12-22-2008
Vgersh is very good at this type of problem and I don't want to but in, but most cases, in most shells, using an array to store the data and exploding the array is a simple way to form a concatenated string of disparate variables.

Short example with bash and gawk.
Code:
function retrandstr() {
gawk '
  function retrandchars(str, sz,rval,i) {
  sz = int(1 + rand() * length(str))
  i =0
        #print sz, i; 
         while (i < sz) {
                rval = rval substr(str,int((1 + rand() * length(str))),1); 
                i++;
          }
  return rval
  }
  BEGIN {
    srand();
    print retrandchars("abndhcv784893ndyvurfgh3ery348infy7478")
  }'
  sleep 1
}

Test--
while test "$i" -gt 0;  do arr[$i]=`retrandstr`; i=`expr $i - 1`;  done
list=${arr[@]}

# 7  
Old 12-22-2008
Vgersh, I have posted a sample in comment #1.
The only thing is that data values will be added to the "string" variable based on a condition. So for example string = aaa ccc ddd.

For example in the first loop "string" would contain no data then based on a condition "aaa" will be added to it. In the next loop if the condition satisfies "ccc" will be added, but "string" should contain "aaa" as well, so the end value would be "aaa ccc". Hope this helps.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Equivalent to let command in POSIX shell

Hi all, I am learning POSIX shell programming, and the book I read, uses the let command for integer arithmetic. I have downloaded and use the shellcheck program on Linux. This programs says: In POSIX sh, 'let' is undefined. See the screenshot attached. What is the POSIX... (1 Reply)
Discussion started by: johnprogrammer
1 Replies

2. UNIX for Dummies Questions & Answers

Shell equivalent of matlab fwrite function

I have some matlab code that sends the serial port elements of an array using matlab's fwrite function, e.g.: fwrite(s, , 'uchar'); What would be a unix shell equivalent? E.g., after successfully accessing the port using instructions here: Simple terminal serial port program for Linux/MacOSX... (3 Replies)
Discussion started by: darwin_886
3 Replies

3. Programming

strcat in C

Hello, #include <stdio.h> #include <string.h> void main() { char tab={"12"}; FILE *outfile; char *outname = "/home/dir/"; printf("%s",strcat(outname,tab)); outfile = fopen(strcat(outname,tab), "w"); if (!outfile) { printf("There was a problem opening %s for writing\n", outname); ... (2 Replies)
Discussion started by: chercheur857
2 Replies

4. Programming

strcat outputs garbage

Anyone have any ideas why when using strcat function I would get some garbage at the beginning of the output string? what I'm doing is something like the following example. Code: char temp; char tempHolder; for(int i=0;i<something;i++){ sprintf(temp,"%u ", someVariable);... (2 Replies)
Discussion started by: airon23bball
2 Replies

5. Shell Programming and Scripting

Call Shell scripting from Perl Scripting.

Hi How to call a shell scripting through a Perl scripting? Actually I need some value from Shell scripting and passes in the Perl scripting. So how can i do this? (2 Replies)
Discussion started by: anupdas
2 Replies

6. Shell Programming and Scripting

Windows command shell equivalent in Unix

In Windows we use cmd.exe \c as the command SHell What is its equivalent in UNIX ? Thanx for all your help. (10 Replies)
Discussion started by: simonsimon
10 Replies

7. Shell Programming and Scripting

shell script equivalent for tcl function

Hello, I need experts help in converting the below tcl function to korn shell function equivalent. proc lsNetMaskToBits {mask} { set dw ; # Top N bits set set dw 0x ; # Make sure it's hexadecimal, else XOR fails. puts "lsNetMaskToBits dw $dw" set dw ; # Complement => low 32-N bits... (1 Reply)
Discussion started by: JackMelson
1 Replies

8. Programming

`strcat' makes pointer from integer without a cast

A question to ask. seq1 = "eeeeeeeeeeeeeeeeee"; seq2 = "dddddddddddddddddddd"; char a = '*'; strcat(*seq2, &a); strcat(*seq1, seq2); compilation warning: passing arg 1 of `strcat' makes pointer from integer without a cast thanks (4 Replies)
Discussion started by: cdbug
4 Replies

9. Programming

strcat() dumping core

strcat dumping core in the situation like main() { char* item; char* p=sat_item; char type; item=(char*) malloc(strlen(p)); strncpy(type,p,4); type='\0'; strcat(item,type); //dumping core } I couldn't get why strcat dumping core? (3 Replies)
Discussion started by: satish@123
3 Replies

10. Shell Programming and Scripting

difference between AIX shell scripting and Unix shell scripting.

please give the difference between AIX shell scripting and Unix shell scripting. (2 Replies)
Discussion started by: haroonec
2 Replies
Login or Register to Ask a Question

Featured Tech Videos