Tagged Questions
5
votes
2answers
98 views
Bash : command line with optional arguments
I'm running this kind of code:
#!/usr/bin/env bash
set -u
exclude1='--exclude=/path/*'
exclude2='--exclude=/path with spaces/*'
exclude3='' # any 'exclude' can be empty
tar -czf backup.tgz ...
2
votes
3answers
83 views
Very strange behavior with grep and IFS
I'm having trouble using grep, the returned results are "n-empty", I mean without the 'n' character...
This is the script sample :
OLDIFS=$IFS
IFS="\\n"
i=$(grep -ril $1 *)
echo $i
IFS=$OLDIFS
...
2
votes
1answer
37 views
replacement inside parallel command string
I want to download multiple files and save them to the md5 sum of its name:
cat list | parallel -j4 "md5=$(wget -O - {} | tee tmpfile_{#} | md5sum | cut -d ' ' -f 1); mv tmpfile_{#} $md5"
but the ...
2
votes
2answers
67 views
Calling bash from sh (dash) with commands read from args, and “Unterminated quoted string”/“unexpected EOF”
Just thought I'd document this: I'm trying something very simple - set env variable in bash, and print it out:
$ bash -c "a=1; echo a$a;"
a
$ bash -c "a=1; echo a\$a;"
a1
Now I'd want this same ...
0
votes
1answer
124 views
shell scripting escaping madness - sending single quotes to subshell
I'm beyond my skill level in getting this to work properly...
#!/bin/bash -x
# mxfbc.sh - mxf video file batch converter
# pass at the command line ...
# (1) the directory to batch convert (typically ...
2
votes
3answers
89 views
Treatment of backslashes across shells
How do echo and printf treat backslashes in zsh, bash and other shells?
Under zsh I get the following behavior:
$ echo "foo\bar\baz"
foaaz
$ echo "foo\\bar\\baz"
foaaz
$ echo 'foo\bar\baz'
foaaz
$ ...
0
votes
1answer
36 views
Reading a path from a nested grep yields “No such file or directory”
Essentially, I have a file containing the path to another file. A single line looks like this.
"/home/self/file"
Now, separately...
> cat "/home/self/file"
blah blah
...
> grep '".*"' ...
6
votes
2answers
104 views
When is double-quoting necessary?
The old advice used to be to double-quote any expression involving a $VARIABLE, at least if one wanted it to be interpreted by the shell as one single item, otherwise, any spaces in the content of ...
3
votes
4answers
139 views
How to print “$” in here-document
How can I echo "$" in a here-doc in bash?
For example, I want to have a file with the content on remote server like $ABC=home_dir.
$ ssh hostname sudo -s <<EOF
echo "$ABC=home_dir" > file
...
2
votes
2answers
121 views
Use of quotes in GNU grep regular expressions
I could see that certain patterns in the GNU Grep can be enclosed within brackets and certain others need not be. For example, matching the beginning of a word works only if it is enclosed within ...
2
votes
2answers
101 views
How to pass the output of a script to a command like ls without the output being split?
Suppose I have a script like this:
#!/bin/bash
printf '%q\n' "b c"
Executing the script prints:
b\ c
on the commandline.
Now, being in a directory which contains a file named b c I want to pass ...
2
votes
1answer
54 views
Confused about when to escape metacharacters in pathnames
I'm pretty confused about under which circumstances do I need to escape metacharacters in pathnames. Consider the following example:
I'm in the following working directory:
$ echo $PWD
...
3
votes
1answer
248 views
mkdir multiple directories with a subdirectory name having space in it
I want to make multiple directories in one go. The problem is that one of the sub directories have a name with a space in it. The directory structure i want to make is as follows.
project
/level ...
4
votes
2answers
177 views
Bash prompt not recognizing Unicode escapes
I'm trying to customize my Bash prompt with Unicode characters and I'm having a bit of trouble. If I try to include a Unicode character like this:
$ echo ☢ | hexdump -C
00000000 e2 98 a2 0a ...
3
votes
2answers
193 views
Read a file and copy to another file
I'm having a issue, I need to copy the file contents and remove a couple of lines if they match the output from a previous command. But so far, I'm having an issue in maintaining the file lines ...
1
vote
5answers
178 views
Identify folder in bash
I was trying to learn how to identify only folders within a folder on the main level.
example:
main
-folder 1
-folder 2
-folder 3
I started with this script:
#!/bin/bash
...
2
votes
1answer
181 views
Trouble in script with spaces in filename
I've got a script that scp's a file from remote host back to local. Sometimes the file names contain spaces. scp does not like spaces in its file names. For some reason my attempts at handling the ...
2
votes
2answers
182 views
Bash: passing braces as arguments to bash function
I love using the following pattern for searching in files:
grep --color=auto -iRnHr --include={*.js,*.html,} --exclude-dir={release,dev,} "span" .
I'd like, however, to have this one wrapped into a ...
2
votes
2answers
105 views
Parameter splitting
I have a bash script that is a simple wrapper around another process:
$ cat ~/bin/s3cmd
#!/bin/sh
trickle -u 80 ~/bin/s3cmd.py $*
$
This works great when the parameters don't contain spaces. ...
4
votes
2answers
93 views
Is there any reason to escape a dot in a bash filename expansion?
I am working with a bash script that someone else wrote and I see the following line:
cp -v ${LOG_DIR}/${APPLICATION}\.*.log ${ARCHIVED_LOG_DIR}
The files with which it's working are all named ...
6
votes
2answers
258 views
Why does --text=“$@” only pass the first word?
When I run the following script with some arguments like arg1 arg2 arg3:
#!/bin/bash
zenity --entry --text="$@"
zenity creates an entry dialog with this text: "arg1" whereas I expect "arg1 arg2 ...
4
votes
2answers
136 views
Why am I observing different behaviour of echo?
I am a bash beginner and observed the below behavior of echo
#!/bin/bash
x=" hello"
echo $x
echo "$x"
Now when I run the above code I get
ronnie@ronnie:~$ bash test.sh
hello
hello
...
0
votes
2answers
110 views
sqlite fts quoting problem
I can do this in sqlite tool:
sqlite> select caption from notes_fts where notes_fts MATCH '"perl install"';
but cannot from the Linux shell i.e., this fails:
user@host:~$ sqlite3 sqldb ...
1
vote
4answers
121 views
Syntax error in a bash script that calls find
Where is the error in this script please:
#!/bin/bash
rep="git"
files=`find' ${rep} '-type f`
for f in ${files} do
echo $f
done
When i run find git -type f alone in the shell, it works!
1
vote
2answers
193 views
Is there a way to get *actual* (uninterpreted) shell arguments in a function or script?
I have a function posix that I use in the Git bash shell on Windows to transform DOS-style paths to normal Unix-style paths. Since DOS-style paths use a backslash as separator, I have to quote the ...
3
votes
1answer
130 views
Bash script with quotes and spaces
I'm trying to get some nice output out of git:
FORMAT='%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'
LOG_PARAMS="--color --pretty=format:$FORMAT --abbrev-commit ...
1
vote
2answers
123 views
run bash in script
I want to creat a script to run an another script with a several parameter
exp=([1]=bloc [2]=ins [3]=rep [4]=op)
for j in ${!exp[*]}
do
arr=([1]=mem [2]=gen [3]=usr)
for i in ${!arr[*]}
...
11
votes
3answers
948 views
What does it mean to have a $“dollarsign-prefixed string” in a script?
I just saw this in an init script:
echo $"Stopping Apache"
What is that dollar-sign for?
My research so far:
I found this in the bash manual:
extquote
If set, $'string' and ...
4
votes
2answers
664 views
Passing arguments with quotes and doublequotes to bash script
At this moment I have:
#!/bin/bash
screen -p 'ScreenName' -x eval 'stuff '"'"$@"'"'\015'
echo eval 'stuff '"'"$@"'"'\015'
But when I call my script as:
# script.sh asd "asd" 'asd'
my arguments ...
1
vote
5answers
1k views
bash execute read command from file
After some manipulations, I got the file with commands that I would be glad to be able to execute.
Input file (name of file is inp2.txt):
"02 - Beautiful Emptiness.mp3"
"02 - Come. mp3"
"02 - Go ...
1
vote
4answers
771 views
Appending a string containing escape character with sed
Currently I use:
sed -i -e "5a\\
${text}" $filename
to append something to a certain line, where the variable text
contains a string such as "\epsilon".
When using
echo -E $text
the string is ...
2
votes
2answers
1k views
Change directory with space followed by '('
There are two directories I can change to:
Program Files/ Program Files (x86)/
I can change to first one by writing:
cd Program\ Files
But the second for second one:
cd Program\ Files\ ...
3
votes
3answers
1k views
Why does bash variable expansion retain quotes?
> echo "hi"
hi
> VAR='echo "hi"'
> $VAR
"hi"
Why is the output of the above commands different?
A similar thing occurs with single quotes:
> VAR="echo 'hi'"
> $VAR
> 'hi'
11
votes
3answers
2k views
Can't use exclamation mark (!) in bash?
I'm trying to use the curl command to access a http url with a exclamation mark (!) in its path. e.g:
curl -v "http://example.org/!287s87asdjh2/somepath/someresource"
the console replies with bash: ...
18
votes
3answers
2k views
using single or double bracket - bash
I'm confused with using single or double bracket. look at code:
dir="/home/mazimi/VirtualBox VMs"
if [[ -d ${dir} ]]; then
echo "yep"
fi
It works perfectly although the string contains space. ...
4
votes
1answer
333 views
Calling script from bash has problem with arguments
I have a script that generates an xml file and then executes a perl script, passing a series of arguments to it. Here's the key code:
CMD="./dnscurl.pl --keyname $KEYNAME -- -X POST -H ...
3
votes
1answer
1k views
Bash: Merge foldername from variable with filename
First I write a configfile with all my parameters like this
path="/home/test/"
I name it test.conf.
Then I write a shell script with this content, name it test, and make it executable with chmod ...
3
votes
3answers
288 views
Escaping argument in bash script?
I'm writing a bash script wherein I want to check that one of the arguments passed to it is a valid group.
I have the line
if [ `grep -c -e '\b$2\b' /etc/group` -eq 0 ]; then
echo "Error: $2 is ...
7
votes
3answers
5k views
What does ` (backquote/backtick) mean in bash?
I came across the following command
sudo chown `id -u` /somedir
And I wonder what is the meaning of the ` symbol. I noticed for instance that while the command above works well the one below does ...
8
votes
2answers
1k views
How are parenthesis interpreted at the command line?
While reading up on how to set up grub, one article mentioned that I need to use a syntax like
echo \(hd0,0\) >> /boot/grub/grub.conf
or
echo '(hd0,0)' >> /boot/grub/grub.conf
...
2
votes
2answers
373 views
How do I echo a command and include line returns?
I am writing a bash script, and on a condition I'd like to output ps aux --sort -rss
However, when I write :
echo `ps aux --sort -rss`
everything is on one huge line. How do I run it so it outputs ...
2
votes
1answer
135 views
Why does this variable have no value even though it is set in .bashrc?
If I append this:
hi=11
export hi
to the .bashrc and then I su to this user with:
su - bela
then I:
echo $hi
11
Then it's working, the "hi" variable has the value of "11". But. When I:
...
3
votes
2answers
784 views
Ignore escape characters when printing string in shell script
I just wrote a simple shell script to save a LaTeX expression as a PNG file. It works fine, except for the LaTeX-syntax for "next row", i.e. the double backslash \\.
When for instance my input ...
4
votes
2answers
188 views
Understanding quotes in a bash conditional instruction
My friend is messing around with Bash scripts and he wanted me to take a look at them (he had another friend do it for him). One of the commands is
if [ "`pidof transmmission-gtk`"=0 ];
what ...
4
votes
2answers
85 views
Quoting in a function results in error
How should I write the command variable to get the expected behavior?
#!/bin/bash
function f ( )
{
echo "$2"
}
command="f --option=\"One Two Three\" --another_option=\"Four Five Six\""
$command
...
12
votes
4answers
4k views
How to add newlines into variables in bash script
When I do
str="Hello World\n===========\n"
I get the \n printed out too. How can I have newlines then?
2
votes
3answers
103 views
How to pass lines from a file to a bash script, so that each line remains undivided, even if there are spaces?
Given:
$ cat lines.txt
a/b
'c/d e/f'
$ cat 1.sh
#!/bin/sh
./2.sh `cat lines.txt`
$ cat 2.sh
#!/bin/sh
echo p1=$1
echo p2=$2
echo p3=$3
$ ./1.sh
p1=a/b
p2='c/d
p3=e/f'
How do I change lines.txt ...
2
votes
3answers
357 views
variable concatenation not working?
I have a simple bash shell script which is driving me bonkers. All I want to do is run a command which returns a result which I will then use in another command. The result of the first command ...
4
votes
2answers
2k views
Why does the exclamation mark `!` sometimes upset bash?
I realize that ! has special significance on the commandline in the context of the commandline history, but aside from that, in a runing script the exclamation mark can sometimes cause a parsing ...
2
votes
2answers
763 views
Bash color output fails
Is it sed or echo problem? What I'm doing wrong?
$> cat ~/bin/color_test.sh
#!/bin/bash
ColorOff='\e[0m' # Text Reset
BWhite='\e[1;37m' # Bold White
string="test TEST test"
echo -e ...
