Reputation
2,972
Top tag
Next privilege 3,000 Rep.
Cast close & reopen votes
Badges
4 19
Newest
 Nice Answer
Impact
~156k people reached

2d
comment BASH: Fifo troubles - seems selective about input
In the writer part you are using FD 4 so you are doing: done 4>"$fifoIn" Should be done 4<"$fifoIn" Also fifoIn=$(mkfifo /path/to/fifo). You need to make sure fifo exists. Then.. use while IFS= read -r line; do printf '%s\n' "$line"; done ... As Anthony suggested, use set -xv just under the shebang so you get more debugging info
May
24
comment grep command not working in conditional statement
And now I'm confused as well.
May
23
comment How can I partially copy a file from a broken disk?
Another option is to use e.g split -b[bytes] yourbigFile
May
21
comment CentOS can't remove user from group
No idea why this answer has not been upvoted. It's best practice!
May
19
comment How can I copy a file in a bash script and rename it while copying and place it in the same directory
@StéphaneChazelas that is even shorter indeed. Good to know.
May
19
comment Nginx init.d script
@SanderKoenders did you check if the pid file aready exists? Also on what port is nginx listening? Are you using nginx with php-fpm? what does lsof -i :[nginxportnr] tell you. See also netstat -tanulp what it reports. You could try to run nginx with strace
May
19
comment How can I copy a file in a bash script and rename it while copying and place it in the same directory
@StéphaneChazelas You've a point there. I should have used -- to indicate end of options. Well the .doc suggests a file. That check is not necessarily either.
May
19
comment How can I copy a file in a bash script and rename it while copying and place it in the same directory
That's not what OP asked either. What it does is just copy source file to dest file. There is a shorter step though. cp /path/to/dir/{file.doc,file_copy.doc} Again, the OP wan'ts to use the positional parameter $1
May
19
comment shell scripting remote commands through ssh
@RatDon as a quick workaround you can e.g use: ctrl+z which will send a SIGTSTP to the process. Here after you can enter bg and there you go!
May
18
comment Service start fails after Capistrano2 deploy task
Please quote every expansion e.g "$PIDFILE". Don't use CAPITAL letters for normal variable names. Also use $(...) command substitution instead. Put set -x just beneath your #!/bin/sh and see if the var "$PIDFILE" is set.
May
8
comment how to check directory is empty
See mywiki.wooledge.org/BashFAQ/004
May
7
comment How does the iptables work with IPv6?
@blackcornail Not sure if you or anyone else noticed. You've a syntax error there in your start) section. iptables -nat -A ... should be iptables -t nat -A ...
May
6
comment bash - change filename in a loop
@CarlH basename(1) can strip the directory and extension from a path (directory/subdirectory/filename.extension -> filename.extension or filename). A parameter expansion can do it cleaner and much faster: "${path##*/}", "${path%.*}", at the cost of missing corner cases like path=/ For more see: mywiki.wooledge.org/BashFAQ/100?highlight=%28basename%29
May
6
comment bash - change filename in a loop
oh really, I hope you are not serious. Quotes are crusial in bash for the above mentioned reasons. touch "file with spaces"; var="file with spaces"; cat $var && cat "$var" Notice the difference. In this case I'm using cat but imagine if one used rm. This will have very bad side effects. Avoid it if unnecessary! is just a bad advice.
May
6
comment bash - change filename in a loop
You should really make a habit to use more quotes just in case files contain spaces or new lines.
May
6
comment bash - change filename in a loop
@thiagoveloso as suggested, dir_in="/Users/dossa013/data/inland-data/input/" and dir_out="/Volumes/Macintosh HD 2/data/cmip5/cru/". Furthermore, you need to quote every expansion e.g "${f##*/}" and so on
May
6
comment bash - change filename in a loop
@thiagoveloso Using basename is discouraged. You are doing just fine using parameter expansion so keep using that.
May
6
comment bash - change filename in a loop
files=("/Users/dossa013/data/inland-data/input/"*ts*)
May
6
comment bash - change filename in a loop
Don't single quote '*' That won't expand. That's your problem.
May
4
comment Remove lines in a shell script
@StéphaneChazelas Thanks for the suggestion. The answer has been modified, feel free to provide a more portable solution.