General :: Using File Redirection Operators In Bash?
Sep 3, 2010What's the difference between using > and >>? How can I use both < and > (redirection operators) in a single command?
View 2 RepliesWhat's the difference between using > and >>? How can I use both < and > (redirection operators) in a single command?
View 2 RepliesI'm writing a script to execute bash commands in the PHP CLI. I would like to suppress errors from bash and write my own error message if an error occurs. So far I have this (assuming log.txt doesn't exist!):
Code:
tac log.txt 2>/dev/null
Which works as expected, tac kicks up an error but the error is suppressed, but when I use this:
Code:
tac < log.txt 2>/dev/null
I get:
Code:
bash: log.txt: No such file or directory
The tac error is suppressed but bash still gives me a dirty error.
I have a set of files to copy and decompress, and want to do these operations concurrently with a script.
Manually it would be something like:
Code:
The single & is intended to background the processes, while the && is intended to execute the gzip process if and only if the cp completes successfully.
My script is:
Code:
When I run it, bash gets angry with the following error:
Code:
So what is the proper syntax to accomplish this?
I'm trying to code the following WHILE loop in Bash:
While [string1 is non zero] and [string2 is non zero] and [counter < max]
Do
...
Done
I can't get the syntax right. I've tried:
Code:
while [ -n "$STRING1"] -a [ -n "$STRING2"] -a [$COUNTER -lt $MAX ]
But I get 'Too may arguments'
I have a linux script that generates a string and prints it to the console. I want this string to be the name of a file and open it for editing in vi. How can this be done?
View 3 Replies View Relatedi've checked the link, and it makes it better. but it doesn't include all the information. i'll continue searching the internet. However i have seen an example of creating a fd:
Code:
exec 5<&1
echo "TEST" >&5
exec 5>&-
as in the page, this was intended to redirect the stdout to the fd 5 and create it, and close it. i have the following questions:- what is exactly the meaning of second command? is it to redirect the command stdout "test" to the fd 5? and how i can see the contents of the fd 5? - in the first command, why the < is used instead if > and what is the difference between the below two commands as in the info bash *Redirection section It will be helpful if anyone could include a graph for file descriptor before and after different command execution.
[Code]...
Within a bash script, I'm attempting to redirect file descriptors with exec, e.g. exec 3>&1 1>&2; however, I'd like to do something like exec $FD>&1 1>&2, which doesn't work because bash tries to execute the value of $FD. Various placements of eval fail, as well. Is there a way around this, or am I stuck hard-coding the descriptor?
View 3 Replies View RelatedI'm working on some scheduled task script files to keep nightly backups of some of our database information in place, and it's a bit annoying when they blow up. I know how to redirect stdout and stderr to a flat file I can view when I come in, and I know that 2>&1 maps them both to the same file (whatever was named in 1). However, I'm running into some cron-time situations where it's easier to have the two streams together, and other cron-time situations where it's easier to have them separated. I can't really tell which is going to happen; is there some way I could create both kinds of output file for my scripts, so that I've got a std_err only file and an interleaved std_out/std_err file?
Note: I've looked at the 'tee' command, but I don't think it will work for what I'm after. 'tee' appears to only work with stdout; I'm trying to work with stderr.
I was wondering about the differences between "$PWD" '$PWD' `$PWD`. Basically I just don't understand exactly how '' "" `` change the output of the command.
View 1 Replies View RelatedHow can I implement logical operators in grep? I checked the man info and couldn't figure it out. For example, I'd like to display lines in file1.txt that contains word1 OR word2.
cat file1.txt | grep word1 OR word2
I create a bash script that writes another bash file. But in the generated bash file I want to write a bash command in the file and not executing it.Here's my bash file:
Code:
#!/bin/bash
cat > ~/generateGridmix2data.sh << END
[code]...
I am always confused about the redirection operator <Lets say i have a file input.txt that contains one word "hello" without the quotes when i do the following why don't i see any output? $echo < input.txt Secondly, i am slightly confused between input redirection < and pipe | operator. Sometimes they seem to do the same thing. For example i can achieve the output from the above command as follows $ cat input.txt | xargs echo
View 2 Replies View RelatedWhen I execute the following command from the linux command line I get the output I want to the screen
[Code]...
I am supposed to take some small files, and print them to a specific printer, such that the small files are concatenated into one file. The file name has to be included in the file that gets printed.
Should I be looking to concatenate the files into one file with the file names included, and then print them?
something like: -printfunction -printername < file*
This is an examination senario. We have mulitple users logging into a RHEL-4 server using putty. These people are part of a same group. They are giving UNIX shell script exam.They are helping each other copy the code by using redirection to /dev/pts/x. Is there any way I can stop this redirection?
View 1 Replies View RelatedUnder what condition port redirection could go useful?
View 2 Replies View RelatedWe have several HP Thin-Clients of type t5545 in use. We redirect USB-Media to the terminalserver. Because the t5545 runs a debian customized by hp, we can treat it like a debian in some way.First, I'll explain how usb-redirection is configured: automatically mount it to /tmp/tmpfs/media /tmp/tmpfs/media is redirected as disk "Z" via rdesktop-parameter -r disk:sharename=path in case of removed usb-media udev will run a script to umount -l the device and delete the mountpointThe environment:
Thin-Clients run linux: root@mac-addr:/tmp/tmpfs/media# uname -a
Linux mac-addr 2.6.26-2-686 1 SMP Wed Nov 4 20:45:37 UTC 2009 i686 GNU/Linux
Terminalserver runs Windows Server 2008 R2
[code]....
Some context: I'm calling some functions from within a C program and want to measure how long they take to execute. I've done this successfully, calling printf to print the results to the screen. This is reasonably fast. Ideally I'd like these to be dumped to a file, but fprintf presumably has some overhead since it writes to disk? Unless the data is buffered by the kernel and flushed later? What kind of delay can I expect before fprintf returns?
If I redirect the stdout to a file when I instantiate the binary as a process, will calls to printf also experience any overhead from redirection to a file? My aim here is to capture all data in a file, with the minimal amount of coding and effort, but with minimal impact in terms of time overheads for printf calls.
So if you are a PHP-programmer (average one) and code for money, how many of funtions and operators of PHP should you remember by heart (in real life)? I was looking through php.net and man there are millions of tons of them!
View 9 Replies View RelatedI have users using Windows XP, Windows 7, Linux (Fedora) and Mac. They all are in a single private network and all access internet through a Linux (RHEL5) system in which Squid acts as gateway. The same is true with my branch offices too except that private network is different and gateway system uses Fedora 9 instead of RHEL5. All the branch offices are connected through point to point leased lines with the head office for file transfer.
My requirement is this: I have a web server located at head office. Presently I am able to access this server from my branch offices through internet. I would like to access this server from branch offices through leased lines. This too I am able to access if I do routing in users system. The file transfer is taking place through one to one system at two ends by creating static routing in those systems.
I'm trying to write a small application controlling spotify, running under wine, that I can run from my desktop computer and use via SSH on my mobile phone, and so far I've been quite successful. At least until just recently, when I tried to use the read command to read a single key-press on my phone, and use that input instead of having to type the number for item in the menu I've created. I tried to simply use the read command to silently listen to one key-press and output it to the variable opt. To do this I tried:
read -s -n1 opt
When I ran this in a shell-script this I got:
read: 1: Illegal option -s
Seeing this, I tried to remove the -s operator, which left me with:
read: 1: Illegal option -n
I decided to remove all operators and echo the variable opt, leaving me with:
read opt
echo "$opt"
Which worked as expected. It echoed the key that I had pressed. I moved over to my terminal window and tried the read command from there, and it did exactly what it should. It silently recorded one key-press to the variable opt.
why isn't read working with operators in shell scripts?
how to retrive every portion separately from following file name? DSA4020_frontcover_20346501_2011-05.doc
I want to retrieve informations as below;
name = DSA4020
type = frontcover
id = 20346501
date = 2011-05
is it possible to do with sed??
I've created a bash file that calls another bash. And I would like to get the pid from the second file launched, to wait for the file to ends. The second bash file launches processes in background. How can I get the PID from the second bash file?
Here's my code:
Code:
#!/bin/bash
echo "FIRST"
./second.sh
PID=$(echo $!)
wait $PID
echo "CONTINUUING FIRST"
how to update a file that is already exist in bash. so far i haven found any. I'm using parameter as my first start for the existent, copy file to a different directory.
View 5 Replies View RelatedI have a program that writes to stdout. Is there a way that I can redirect the output to the linux diff command or do I have to write the output to a file and then compare that. For example I have a bunch of test input files for a program and the corresponding expected output in another set of files. And I'd like to do something like ./program < t1.input | diff t1.expected.
View 3 Replies View RelatedHow do I compare the timestamp of two files? I tried this but it doesn't work:
file1time=`stat -c %Y fil1.txt`
file2time=`stat -c %Y file2.txt`
[code]....
I printed both the time stamps, in order and it gives me
1273143480
1254144394
./script.sh: line 13: [1273143480: command not found
So basically if comparision is not working, I guess. Or if there is any other nice way than what I am doing, please let me know.
Edit: There was no space in between if, so changing it to this works:
if [ $file1time -gt $file2time ]
I frequently use wget to download tarballs and zip files from the web, then either untar then or gunzip them. I do:
Is there a way for me to automatically pass the zip file to tar or unzip WHILE wget-ting?
In pseudocode: wget google.com/somfile.zip && unzip
I have a file named file.txt with the following contents
Code:
19 man
24 house
44 dyam
90 random
I want to read the file into array and store each line in each index. I've tried using the following code.
Code:
dataarray=($( < file.txt ))
It stores each word in each index rather than each line in each index.
total newb here. call me a script kiddie if you want but here is what i need to do and what i have.
need to:search a hidden log file for a specific string, find what comes after that part, and then output the result to a variable or something that can be used by an application or other script to carry out further actions.
I know that cat can output the file, but how do you store that output in a variable to process:
Code:
CONTENT=cat file.txt
This doesn't seem to work?