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)

3
votes
3answers
1k views

Expanding variables in zsh

The script below works in bash but not in zsh. I think it is because in the variable OPTS, I am "expanding" (not sure if this is the right word) the variable $EXCLUDE, and this syntax doesn't work in ...
15
votes
3answers
19k views

How to specify characters using hexadecimal codes in `grep`?

I am using following command to grep character set range for hexadecimal code 0900 (instead of अ) to 097F (instead of व). How I can use hexadecimal code in place of अ and व? bzcat archive.bz2 | grep ...
3
votes
2answers
917 views

How to use $? and test to check function?

#!/bin/sh function checkExit(){ if test "$?" != "0"; then echo Command $1 exited with abnormal status exit 1; else echo $? fi } function echoThenRun () { # echo and then ...
2
votes
1answer
2k views

Enable line breaks when assigning multi line outputs to var in bash

I'm using the following very basic shell script I copied off the net to list the contents of my database backup folder and mail them regularly: MYSQLLIST=$(ls -lhG /var/backups/mysql/daily/) ...
26
votes
4answers
58k views

Move folder content up one level

I have a directory that is unpacked, but is in a folder. How can I move the contents up one level? I am accessing CentOS via SSH.
6
votes
2answers
869 views

Using bash “double paren” arithmetic expansion, math fails with leading zero

I have a simple script that deals with hours and minutes. If I want to calculate number of minutes since midnight having a string s hh:mm I tried splitting string then doing hh * 60 + mm My problem ...
12
votes
5answers
12k views

How to recover a shell after a disconnection

Am doing some work on a remote centos 5.6 machine and my network keeps dropping. Is there a way i can recover my hung sessions after i reconnect? EDIT: am doing some updating and installing with yum ...
5
votes
4answers
153 views

Change command-line “environment” to programs command

In a console, is it possible to change into a commands "environment"? To explain, I take "git" as an example. While programming and using a git repository, I change to the repos path and then do many ...
2
votes
1answer
329 views

Return Carriage not working (Screen)

When I execute the command screen -S myscreen -X stuff $'search add $1 \015' from a shell it works perfectly. If I put it in a .sh file and run it as sh /test.sh variablehere it sends it to screen as ...
23
votes
3answers
12k views

bash multi line command with comments after the continuation character

Consider echo \ # this is a comment foo This gives: $ sh foo.sh # this is a comment foo.sh: line 2: foo: command not found After some searching on the web, I found a solution by DigitalRoss on ...
10
votes
3answers
12k views

How can I handle raw binary data in a bash pipe?

I have a bash function that takes a file as a parameter, verifies the file exists, then writes anything coming off stdin to the file. The naive solution works fine for text, but I am having problems ...
4
votes
1answer
3k views

Determine if the current user has write permission in a directory

I know you can determine the owner of directory by doing: ls -ld ~/foo | awk '{ print $3 }' You could then compare it to the current user by doing this: if [[ $(ls -ld ~/foo | awk '{ print $3 }') ...
3
votes
1answer
487 views

How to unset the positional parameters?

How do I do this: set foo bar baz unset # Something else here echo $# # Should ouput 0 By doing set "", $# will still be 1 and not 0.
7
votes
2answers
2k views

In `while IFS= read..`, why does IFS have no effect?

I might have something absolutely wrong, but it looks convincing to me, that setting IFS as one of the commands in the pre-do/done list has absolutely no effect. The outer IFS (outside the while ...
36
votes
5answers
12k views

When would you use an additional file descriptor?

I know you can create a file descriptor and redirect output to it. e.g. exec 3<> /tmp/foo # open fd 3. echo a >&3 # write to it exec 3>&- # close fd 3. But you can do the same ...
54
votes
4answers
32k views

Why is `while IFS= read` used so often, instead of `IFS=; while read..`?

It seems that normal practice would put the setting of IFS outside the while loop in order to not repeat setting it for each iteration... Is this just a habitual "monkey see, monkey do" style, as it ...
13
votes
3answers
11k views

Answer yes in a bash script

I'm trying to do a git clone trough a bash script, but the first time that I run the script and the server is not known yet the script fails. I have something like this: yes | git clone ...
7
votes
1answer
2k views

Best way to remove file extension from a string?

So, I'm using a script I've made to convert videos to the webm format. A certain program calls the script, sending %f which is the full, absolute file name of the video, like this: converter.sh %f ...
7
votes
1answer
920 views

Show message when cd into specific directory

How can I display a message when I cd into a specific directory? This directory is a local one, and I just need a reminder when I go into it from the terminal.
2
votes
3answers
6k views

How to feed the results of date command into grep to filter results of another command

I need to use the result of a formatted date command (date +"%m/%d") as the grep filter to filter the results of another command that will display alerts on a system so that I only see alerts from the ...
20
votes
2answers
6k views

recursive statistics on file types in directory?

I did a website scrape for a conversion project. I'd like to do some statistics on the types of files in there -- for instance, 400 .html files, 100 .gif, etc. What's an easy way to do this? It has to ...
3
votes
1answer
740 views

Keyboard input not displayed on the screen?

We use the `exceed tool to connect to our UNIX servers, but sometimes the command-line behaves erratically. When I am typing some command on the command-line, nothing happens -- nothing is displayed ...
4
votes
4answers
3k views

How to echo an escaped string

How can I echo an escaped string that contains $ in Bourne Shell? user@server:~$ cat test.sh #!/bin/sh echo $1 user@server:~$ ./test.sh \$sad\$test $sad$test I want it to return an escaped ...
6
votes
1answer
233 views

How can I output “temporarily” to the shell, like zsh tab completion does?

In zsh shell, when you hit Tab twice to get tab completion, your options are displayed below your prompt. But when you make a selection, the options disappear. I have a little script that outputs ...
4
votes
1answer
97 views

Linux ssh shell prompt

While trying to type ~/Code, I somehow got myself to some sort of ssh shell: ┌─[jpearson@cominor] - [~/code] - [Fri Aug 05, 06:08] └─[$]> ssh> ^D As you can see, ctrl+d exited me out of it, ...
16
votes
4answers
4k views

How to understand pipes

When I just used pipe in bash, I didn't think more about this. But when I read some C code example using system call pipe() together with fork(), I wonder how to understand pipes, including both ...
1
vote
1answer
11k views

Execute a script automatically through pbrun?

There is a Unix environment named sftwrk01, uatwrk01, intwrk01 and some more I need to check the logs in each environment everyday by login in as below (through pbsu which is a wrapper for pbrun): ...
4
votes
3answers
4k views

How do I move some but not all files from one directory to another?

I need to move my files from one directory to other. But there is some issues. My file name pattern is like: apple.0, apple.<n>, n -> {0,1,2,3 ...~ } so mv apple.* will not work, because ...
4
votes
3answers
969 views

Permanently switching to zsh in a script, without being root and without being asked for the password

Is there any way to run chsh -s /bin/zsh without being root and without being asked for the password? I want to put it into a non-interactive script that isn't called by root.
7
votes
5answers
5k views

How can I run `watch` as a background job?

When I run: watch 'cmd >> output.txt' & the job gets suspended by the system: 3569 Stopped (tty output) Is there a workaround?
4
votes
2answers
459 views

Combine two commands in .bash_profile

In my .bash_profile file, I'd like to setup a single command alias that is two commands that execute one after another. The first command takes an argument from the command line and the second is ...
7
votes
2answers
1k views

How does a shell (bash, for example) expand wildcard patterns?

Assume that a directory has 100 files starting with the letter 'a'. If I do a grep <some string> a* from the terminal, how will the shell handle this? Will it expand the regular expression, ...
10
votes
2answers
3k views

Using curly brackets (braces) to create folder structure with `mkdir -p`

As man mkdir states -p, --parents no error if existing, make parent directories as needed When I ran this command mkdir -p work/{F1,F2,F3}/{temp1,temp2} It creates a folder ...
3
votes
2answers
480 views

Splitting a large directory tree by file type

I have a large data directory (20-30Gb) on my Ubuntu 10.10 desktop machine that consists of many raw data files, processed data files, and assorted scripts, tables, figures etc. generated from the ...
17
votes
2answers
2k views

running script with “. ” and with “source ”

I was wondering if the following two ways of running a bash script are equivalent? . ./myScript.sh source myScript.sh Are they both running the content of the script instead of running the script, ...
4
votes
2answers
13k views

How to list ALL directories according to their size? [without including the parent directory]

I have a bunch of random folders, some of them are hidden (beginning with a period). I want to list all of them, sorted by their sizes. I have something on the lines of this in mind: ls -d -1 -a */ ...
7
votes
4answers
648 views

How can I find a file whose name includes a given string, such as “abcde”?

Within a set of directories, how do I find a file whose name includes a given string, such as "abcde"?
11
votes
5answers
3k views

Why does shell Command Substitution gobble up a trailing newline char?

As per the following example, and as in my recent question In bash, where has the trailing newline char gone?, I want to know "why" it happens x="$(echo -ne "a\nb\n")" ; echo -n "$x" | xxd -p # ...
1
vote
4answers
773 views

tee and grep at the same time (shell)?

I'm trying to run a server that writes to $log (a txt file) and then find all the text in the logfile that starts with '[1]' and put it in another file. Here's my attempt. tee -a $log works along with ...
10
votes
2answers
2k views

Where has the trailing newline char gone from my command substitution?

The following code best describes the situation.  Why is the last line not outputting the trailing newline char?  Each line's output is shown in the comment.  I'm using GNU bash, version 4.1.5 ...
4
votes
4answers
2k views

file $(ls /usr/bin/* | grep zip) command gives me errors. What's wrong?

I'm a total noob when it comes to unix/linux commands and I decided to read a book. I've reached a chapter where they try to explain how to pass the output of commands as expansions to the shell. ...
26
votes
1answer
587 views

A shell tool to “tablify” input data

A long time ago I remember using a command that makes its input into a nicely formatted table. For example, for this input, apple 1 100 orange 20 19 pineapple 1000 87 avocado 4 30 The output will ...
3
votes
3answers
182 views

Doing actions on a list from the shell

I have a list of packages I want to deinstall. The deinstaller program pkg_deinstall doesn't take a list of packages as parameter to deinstall. How would I deinstall from the list (like a foreach ...
5
votes
4answers
790 views

Equivalent of forward/back buttons for unix shell (when navigating directories)?

I'd like to be able to type in terminal commands of forward/back especially if I went from a directory with a super-long name to home (and want to return back to the directory with the super-long ...
2
votes
4answers
368 views

How to chop the last “/script.sh” part from a string?

How could I modify this INPUT: /home/USER/Desktop/script.sh to this OUTPUT: /home/USER/Desktop/ ...using bash or perl? Of course script.sh could be anything: (e.g. scrasdfipt.sh, etc) and the ...
3
votes
1answer
463 views

Conditionally killing a process based on its output

I have a REPL (read-eval-print-loop) for the Clojure programming language listening on a network socket. I can send it code over the network and the code will be evaluated and the answer sent back to ...
3
votes
2answers
332 views

Advanced usage/command of shell [duplicate]

Possible Duplicate: Is there any book , Tutorial on very very advanced shell scripting Is there a way/book to learn advanced usage of shell by practice? I find that most shell programming ...
4
votes
2answers
5k views

How to escape < or > in a parameter in shell?

I'd like to use grep with a PCRE expression that contains the < character. Bash thinks I want to redirect, but I don't want to. How can I escape <?
3
votes
2answers
286 views

ln gives different results when run multiple times

I have this simple script to use with seventh sense (it's a lone wolf gamebook reader/player): #!/bin/bash GAME_PATH=$(dirname "$(readlink -f "$0")") SEVENTH_SENSE_PATH=$(echo ...
4
votes
3answers
459 views

Kill process when it stops to produce further output

Is there a shell tool which can probe if a subprocess is still producing output, and otherwise kill it after a specified timeout? I'm using offlineimap for Gmail backup, but that's very very very ...