Mkbootfs writing to stdout in bash script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Mkbootfs writing to stdout in bash script
# 22  
Old 04-19-2013
Thank you for the basic explanation. I know well about the the splitting at spaces for unquoted variables, but thought that single quoting stops this.

Even single quoting won't make it work
Code:
#!/bin/bash -xv
CMD_LINE1='/root/Desktop/build_cm10/android_cm-10.1/system/out/host/linux-x86/bin/mkbootfs /root/Desktop/build_cm10/android_cm-10.1/system/out/target/product/n7100/recovery/root > /root/Desktop/build_cm10/android_cm-10.1/system/out/target/product/n7100/ramdisk-recovery.cpio'
$CMD_LINE1

Now, understanding that be it quoted or unquoted, every segment is passed as an argument makes things clear and evident

Thank you
# 23  
Old 04-19-2013
Quote:
Originally Posted by Phil3759
Thank you for the basic explanation. I know well about the the splitting at spaces for unquoted variables, but thought that single quoting stops this.
Single-quoting a > will not let the shell parse it later. The quotes cease to exist when the string is stored, they only tell the shell what to do with a string right then, they don't change the meaning later. Using single quotes versus double quotes tells the shell whether to attempt anything like substituting variables right now and no other time.

Be it single or double quoted, if you force a string to contain actual quote, pipe, redirection, backtick, or dollar-sign characters, the shell will understand them to be literal characters, not anything with meaning.

In other words, storing shell statements inside strings continues to be a poor idea no matter how you cut it. There is not a mysterious "right way" to do this that we are hiding from you. If you explained your intent we could probably show you a better way to accomplish the result you want, but it would be done in a completely different manner.

Last edited by Corona688; 04-19-2013 at 02:18 PM..
This User Gave Thanks to Corona688 For This Post:
# 24  
Old 04-19-2013
Thank you
It is ok, I got it.

I never did such a thing. Was debugging quickly my script and wanted to test the whole line without a second thought. Once it failed, I did not know that the shell will always understand this as literal characters. Now it is really clear.

This is the portion I wanted to achieve since you asked:
Code:
DEVICE_ID=$1
OUT_DIR="/output/path"

# correct way to run my command:
"$OUT_DIR"/utils/mkbootfs "$OUT_DIR"/"$DEVICE_ID"/ramdisk > "$OUT_DIR"/"$DEVICE_ID"/recovery-image.cpio

If you have another opinion about it, you are welcome
# 25  
Old 04-19-2013
I have an opinion. Smilie

Do not put double quotes around the variables, because:

1) Not needed. Makes it harder to read.
2) Nobody else writes it that way.
3) Confusing to others. They waste time trying to figure out why.

Compare:
Code:
"$OUT_DIR"/utils/mkbootfs "$OUT_DIR"/"$DEVICE_ID"/ramdisk > "$OUT_DIR"/"$DEVICE_ID"/recovery-image.cpio

Code:
$OUT_DIR/utils/mkbootfs $OUT_DIR/$DEVICE_ID/ramdisk > $OUT_DIR/$DEVICE_ID/recovery-image.cpio

# 26  
Old 04-20-2013
yes, just a habit to limit errors if spaces under some functions
Thank you

Last edited by Phil3759; 04-20-2013 at 06:11 AM..
# 27  
Old 04-20-2013
You're right. I never put spaces in file names, instead using underscore or dash instead, because using spaces introduces little complexities like this. But you're right to use those double quotes if any chance of those spaces in the names.
# 28  
Old 04-20-2013
Quote:
Originally Posted by hanson44
You're right. I never put spaces in file names, instead using underscore or dash instead, because using spaces introduces little complexities like this. But you're right to use those double quotes if any chance of those spaces in the names.
Yes, mainly to run commands, using quotes is important in my opinion
To assign variables, it can be optional in some cases
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

[BASH] Performance question - Script to STDOUT

Hello Coders Some time ago i was asking about python and bash performances, and i was told i could post the regarding code, and someone would kindly help to make it faster (if possible). If you have noted, i'm on the way to finalize, finish, stable TUI - Text(ual) User Interface. It is a... (6 Replies)
Discussion started by: sea
6 Replies

2. Shell Programming and Scripting

Writing Hbase and pig scripts in the bash script file

Hi, I have a script file where i'm validatig the input file and storing the validated records on HDFS. I wanted to load data from HDFS to HBASE using pig script. So for that i have created a HBASE table and written pig script to load data from HDFS to HBASE which is working fine. Now i wanted... (0 Replies)
Discussion started by: shree11
0 Replies

3. Shell Programming and Scripting

Writing hive scripts in bash script file

Hi, I wanted to load data from HDFS to HIVE by writing bash script. Description: I have written a bash script to validate the data and loaded validated data from local file system to HDFS. Now in the same bash script i wanted to load the data from HDFS to HIVE. How can i do it ? Also how tyhe... (2 Replies)
Discussion started by: shree11
2 Replies

4. Shell Programming and Scripting

Question about writing a bash script

Hello, I want to write a bash script to delete the content after '#'. However, if '#' appears in a string with "", ignore this. For example, input file: test #delete "test #not delete" Output file: test "test #not delete" Does anyone know how to write this script? Thanks (1 Reply)
Discussion started by: jeffwang66
1 Replies

5. Shell Programming and Scripting

Writing a bash script using host

Im trying to write a script using the host command but its not working properly. I cant understand what Im doing wrong. When I use it at the command prompt, it works fine. But its being used actually in the script, it says its not found: 2 SERVFAIL. Can anyone help me? Here's what I have so far: no... (6 Replies)
Discussion started by: relsha
6 Replies

6. Homework & Coursework Questions

brand new user!.. Lost on BASH script writing

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 have just gotten into writing bash scripts for a class, part of the assignment is to read and be able to tell... (4 Replies)
Discussion started by: Byrang
4 Replies

7. Shell Programming and Scripting

Help with writing simple bash script

I want to write a bash script to: 1. Send an email from localhost to an external gmail account. (gmail then automatically forwards the message back to a pop account on the same server. 2. Script waits 3 minutes then checks to see if the email arrived, and if not, it sends an email to... (9 Replies)
Discussion started by: sallyanne
9 Replies

8. Shell Programming and Scripting

bash, help with stdout manipulation.

Hey all, Im kind of lost on how to do what I want so I figured I would ask. I want to pipe STDOUT of an app to a log file, but I want to prepend each line of that output with the date and time. Im drawing a complete blank on how to do this?? Any ideas? i.e. output is currently this:... (9 Replies)
Discussion started by: trey85stang
9 Replies

9. Shell Programming and Scripting

Writing Bash script

Could anyone help me to Write a script in BASH Shell to determine the percentage of system disk space you are using. (1 Reply)
Discussion started by: boris
1 Replies

10. Shell Programming and Scripting

Problems writing bash script to unzip files

I'm getting the following errors when I try to write a script to unzip some zip files. When I use the free trial copy of the commerical winzip program, however, they work fine. When I use -l or -t on unzip it indicates no errors. When I use the -o switch interactively from the bash command line it... (1 Reply)
Discussion started by: siegfried
1 Replies
Login or Register to Ask a Question