The shell is unix's command-line interface. You can type commands in a shell interactively, or write scripts to automate tasks. Use this tag for questions applying to /bin/sh and most compatible shells (ash, bash, ksh, zsh, …).

learn more… | top users | synonyms (1)

27
votes
1answer
1k views

Why does echo >file use more real time than echo | sed >file?

The example, below, surprised me. It seems to be counter intuitive... aside from the fact that there is a whisker more user time for the echo | sed combo. Why is echo using so much sys time when it ...
1
vote
1answer
3k views

Do shells support recursion?

I'm trying to write recursive functions in my shell scripts. Consider the following code: function printA { if [[ "$1" = 0 ]]; then return else echo "a$(printA $(("$1" - 1)))" ...
3
votes
2answers
303 views

open a file using CDPATH and symlink

To quickly move around, I added a path to CDPATH that contains symlinks to different locations. I did this by adding the following line to .bashrc: export CDPATH=~/symlinks When working with ...
50
votes
4answers
131k views

How to add repository from shell in Debian?

In Ubuntu one can add a repository to apt-get via the following command - sudo add-apt-repository ppa:yannubuntu/boot-repair As Ubuntu is based on Debian code base, I was expecting that the same ...
27
votes
5answers
72k views

Shell script fails: Syntax error: “(” unexpected

I've been working on a script that automates setting up a development environment for Raspberry Pi development (step by step details that work are here). The script is linked in that article but ...
5
votes
1answer
806 views

How can I control an existing remote shell?

On my remote machine, an xterm/shell has been created (by another process). I have full access to that shell through VNC. But really I would like to be using a text mode shell on my local machine. ...
5
votes
1answer
313 views

Handling filenames that contains a hyphen, within a script

I have few files that was incorrectly encoded, during extraction, file names now become something similar to -a -b, Now I'm trying to fix this issue with: convmv -f ENCODING -t utf8 --notest * But ...
11
votes
4answers
101k views

How do I exit or cancel a bad bash command?

I expect to get some flak for this, but I can't find the answer anywhere. It seems like it should be so obvious. Sometimes, when I type a bad command in a bash terminal, the cursor just jumps down to ...
0
votes
1answer
3k views

How to move file from one folder to another in shell script by changing the permission

I want to move a file from one folder to another folder. When the file's format is with space in between (file _name.dat) and when I am using the command mv file _name.dat /tmp then the file is not ...
3
votes
2answers
935 views

wait does not wait

If i have a file called myprogram containing sleep 200 date Run this in the background: $ sh myprogram & i want to know when myprogram has completed by using wait command $ cat >notify ...
3
votes
1answer
1k views

Extended file globbing not working with cat inside bash script

When, in my terminal, I type cat ~/my/+(a|b)/doc It reads ok from both ~/my/a/doc and ~/my/b/doc, but when I put that command in a bash script: #!/bin/bash cat ~/my/'+(a|b)'/doc I get the error: ...
2
votes
1answer
3k views

In a Bash Script how does the continue command work with embedded loops?

I am writing a bash script in a busybox session. The script has to initiate an external executable numerous times in sequence in daemonised form then monitor the output. while read LINE; do ...
12
votes
3answers
3k views

Why $SHELL doesn't change when I run new shell?

$ echo $SHELL /bin/bash $ /bin/ksh93 $ echo $SHELL /bin/bash $ file /bin/ksh93 /bin/ksh93: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for ...
8
votes
1answer
4k views

dd: writing '/dev/null': No space left on device

I am reading a 550MB file into /dev/null and I am getting dd: writing '/dev/null': No space left on device I was surprised. I thought /dev/null is a black hole where you can send as much as you ...
5
votes
1answer
2k views

Search for a string in files recursively in BusyBox 1.0? [duplicate]

Possible Duplicate: How to grep a text recursively on BusyBox 1.0? How can I search for a string in a file recursively in BusyBox 1.0 if find and grep are not available ? (I want to telnet ...
1
vote
2answers
427 views

Transforming positional arguments of a shell script

I'm trying to write a shell script that will transform positional arguments that are passed to it as follows. The shell script passes these arguments to a binary executable (ffigen) which is derived ...
7
votes
1answer
912 views

Bash script doesn't read input

I have a script that is suppose to run a command in the background, and it does that. The problem is that when the script comes upon a read command, it doesn't pause and accept input. Here it is: ...
4
votes
1answer
348 views

xterm doesn't switch directory when it is moved

Recently I was very frustrated with xterm not behaving as expected. This is what I was doing: open xterm run the following commands: $ mkdir test_01 $ cd test_01/ $ echo 'a' > a $ cat a The ...
3
votes
1answer
163 views

How can I dynamically switch the output destination of a script or command?

I ran a shell command the other day which produced more output than expected. It was writing to a file on a filesystem with very little available space and could have filled the filesystem. The ...
4
votes
2answers
2k views

bash myscript.sh runs in bash, but the first line is #!/usr/bin/sh

I have a script similar following one: #!/usr/bin/sh var="ABC" if [ $var == "ABC" ] then echo True else echo False fi Above code does not work in Solaris Sparc and Solaris X64. It is showing ...
58
votes
4answers
100k views

How to suspend and bring a background process to foreground

I have a process originally running in the foreground. I suspended by Ctrl+Z, and then resume its running in the background by bg <jobid>. I wonder how to suspend a process running in the ...
4
votes
1answer
6k views

netcat in shell script giving invalid connection

I have a shell script that uses netcat to listen to localhost on port 1111 for web requests. Every time I try accessing localhost:1111/index.html for example I get: invalid connection to [127.0.0.1] ...
1
vote
1answer
561 views

rename files maching specific mtime value within directory

I use simple set of shell commands to in order to create mysqldumps daily. The script is called by cron daemon. It looks like: presentdate="`date +%d-%m-%Y_%H:%M.%S`" basedir="/var/db_my_backup" ...
1
vote
1answer
594 views

What's the most appropriate way of parsing values from this output?

I have some netstat output I'm scripting and want to parse. What's the most efficient way of parsing values from the output below? It's important to point out that I'm using the old /bin/sh shell ...
7
votes
1answer
184 views

Finding where a process reads in a file

Is there a way to attach to a process and find out, not only which files it is reading from, but what the read locations (byte offsets) of those reads are? I tried using strace for this, but it ...
2
votes
2answers
377 views

I would like to send commands and requests from a client side app to a Linux server

So I am planning/designing an app running on Mac that will send commands and make data requests to a linux server. Some of the things I would need to do will be send file manipulation commands, zip ...
10
votes
2answers
2k views

Are dash, ash and sh script 100% compatible?

I wanted to know whether scripts written for dash, ash, and sh are 100% compatible? Are there any added features to dash or ash, or syntax change? From what I heard, ash is a direct descendant of ...
3
votes
2answers
3k views

When sh is a symlink to bash or dash, bash limits itself to POSIX-compliance, so it should be 100% compatible with sh?

From Difference between bash and sh: ABck to the question: If you have /bin/sh as a link to bash, then bash will not behave the same when called as /bin/sh as it does when called as /bin/bash. ...
8
votes
1answer
419 views

How to find out whether a shell script is written in bash or sh

How can I find out whether a script is written in bash or sh? The first line of the script is not helpful here, since on Linux, bash scripts have this line: #!bin/sh Actually, there are many ...
10
votes
2answers
10k views

Printing decimal to ascii character, my command does not output as intended

I wanted to output a string of all the ascii characters with the following command for i in `seq 32 127`; do printf "%c" $i; done The output of the above command is: ...
1
vote
1answer
3k views

Looping over directory entries in bash and saving to an array

(See update at the foot of the question). This is a followup question to "Make directory copies using find". This question involved manipulating a bunch of directories, This got too complicated to ...
1
vote
3answers
1k views

Display a menu of files names and let the user select a file by entering a number

I have created a script that allows the user to select a file by copying and pasting that file. Then perform a grep on that file. I want to know is it possible to put a number in front of each files ...
1
vote
1answer
1k views

When a command is over half the terminal size it breaks

Whenever I type in a bash command longer than about half the width of the shell window I'm in, the command breaks like it would if I filled the whole screen 3rd command in image - typed a few xs ...
3
votes
2answers
378 views

how to make getopts just read the first character post `-`

I have a shell script testShell.sh which uses getopts as below: #!/bin/bash while getopts ":j:e:" option; do case "$option" in j) MYHOSTNAME=$OPTARG ;; e) SCRIPT_PATH=$OPTARG ;; ...
6
votes
2answers
142 views

How can I substitute into this shell command?

I have a find command that I want to substitute a list of GIDs into. Here's the command: find / -follow \( -group 39 -o -acl_group 39 \) -exec ls -ln {} \; 2> $HOME/error.39.log 1> ...
8
votes
4answers
8k views

cp or rsync, is cp really worth it?

I hope this does not count as a question without a real answer, as I can't seem to find a good reason to use cp(1) over rsync(1) in virtually all circumstances. Should one typically favour rsync over ...
3
votes
6answers
1k views

Make directory copies using find

I have a directory with a bunch of subdirectories in it. Thus /usr/local/src/ccl/ccl-1.8/x86-headers$ ls elf gl gmp gnome2 gtk2 jni libc Each of these directories has a further subdirectory C ...
15
votes
2answers
3k views

How do you output a list of all man pages in a particular section?

A man page for fork, for example, is in the System Calls section that has number 2: man 2 fork How do you see what else is section 2 without resorting to Google?
3
votes
6answers
239 views

Transition to linux [closed]

How does someone with major experience in other OS's make a transition to Linux if one's been using it for a while, on and off for two years. By transition I mean everyday use without booting to ...
2
votes
1answer
445 views

awk function with a number parameter for the column you want to print

I want to use my awk shortcut as a function, so that I can pass the column number which then prints me the output. My aliases are: alias A="| awk '{print \$1}' alias G="| grep -i' Instad of typing: ...
3
votes
1answer
827 views

What's the conf file reading between login and non-login shell?

I found that those are .bash_profile, .bashrc, .bash_login, .profile. What's the reading sequence between them?
2
votes
2answers
1k views

Timeout doesn't occur when reading from fifo using `read`

Look at this code: while read -t 3 line; do echo ${line} done < /opt/data.log data.log is a fifo. One process is writing to this, and this code should be reading it to show to the user. But ...
5
votes
3answers
4k views

Sending the output from 'dd' to awk/sed/grep

I'm trying to approximate the computer's write speed using dd: dd if=/dev/urandom of=/dev/null bs=1K count=10000 which gives the following output 10000+0 records in 10000+0 records out 10240000 ...
2
votes
2answers
1k views

How to convert a group of video files using FFMPEG?

I have several video files in a directory and I want to convert all of them into other video formats. Is there any way that I can convert all of them in just one go using FFMPEG. I mean without having ...
1
vote
2answers
211 views

How do I specify which version of a program to run?

Here's my situation: I have two versions of postgres installed, and with the two versions, come two different psql interactive terminals. One is located at /usr/bin/psql, and starts when I run # ...
0
votes
2answers
219 views

Why does this compound command report errors when copying directories?

if one executes the following two commands in one line, as follows, rm -rf dir ; cp -r dir2 dir it may complain that cp can not create directory dir/subdir: File exists but if these two commands ...
22
votes
8answers
17k views

How can I set my default shell to start up tmux

I would like my default bash shell to go straight into tmux instead of my always having to type tmux every time.
3
votes
6answers
8k views

Difference between “echo $SHELL” and “which bash”

I am trying to determine the location of bash interpreter on my Solaris system and I am a bit confused. When I type: echo $SHELL The resulting path is: /bin/bash And when I type: which bash I ...
16
votes
1answer
9k views

what do you mean by interactive shell?

UNIX: The Complete Reference, Second Edition by Kenneth H. Rosen et al. You can start another shell after you log in by using the name of the shell as a command; for example, to start the ...
2
votes
1answer
1k views

Time validation with regex

I'd like to make validation about time stamp of one of my log file. But it seems I have problem on my expression in case statement. TIME value might be something like 11:49 or 2011. And I just want ...