Tagged Questions
5
votes
2answers
36 views
Modifying zsh globbing patterns to use with cp
I'm trying to write a script to copy files recursively from a particular folder except files A.extn, B/*.extn and C/* where B and C are directories and extn is just some generic extension. This is ...
5
votes
2answers
99 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 ...
5
votes
2answers
86 views
[ vs [[ : which one to use in bash scripts? [duplicate]
The zsh man page, in its section on test (aka [), explicitly advises against using it at all, and urges readers to use [[ whenever possible.
The relevant section states:
The command attempts to ...
2
votes
1answer
103 views
Distributing thousands of files over subfolders
I have a folder A with hundreds of thousands of files. I would like to move these files to new subfolders S_i, with, say, 100 files in each (the last folder may have less than 100 files)
In other ...
3
votes
3answers
146 views
Zsh function with su and echo
I'm trying to add a function to my .zshrc that makes adding new USE flags to my /etc/portage/package.use file easier. Normally, I'd have to do
su -c 'echo "net-misc/aria2 bash-completion bittorrent" ...
4
votes
1answer
141 views
what is the zsh equivalent of bash's export -f
So I started using zsh. I like it all right. It seems very cool and slick, and the fact that the current working directory and actual command line are on different lines is nice, but at the same time, ...
3
votes
3answers
114 views
SSH to two addresses, use the one that connects first
I have a home computer (let’s call it franklin because that’s what I call it) that I often ssh into from my work laptop. When I’m at home, I ssh to franklin.local, and when I’m at work or anywhere ...
0
votes
1answer
952 views
Script failing with “command not found: ^M”
When I try to run the following script in zsh, via the command /bin/zsh ~/.set_color_scheme.sh I get the following error:
command not found: ^M
The script has u+x permissions and it used to work on ...
5
votes
1answer
1k views
Executing a script in zsh - file permissions
I'm confused about execute file permissions not behaving as I expect. Probably because my expectations are wrong. Anyway:
I have a script file, for simplicity is just called s, located in ~/bin. For ...
1
vote
1answer
368 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)))"
...
2
votes
2answers
219 views
Executing zsh rehash after build
I have a build script that can change what binaries are in my $PATH (it doesn't edit $PATH itself, but it adds/deletes files to folders that are already in $PATH). zsh's autocompletion doesn't update ...
2
votes
1answer
65 views
Restoring an option at the end of a function in zsh
I'm writing a zsh shell function (as opposed to a script) where I would really like the extended_glob option to be enabled. But since the function runs in the caller's context, I don't want to clobber ...
7
votes
2answers
332 views
Shell Script for going through a dir recursively and chmodding based on conditions of file type
Can anyone point me to either code or a tutorial for writing a shell script that can recursively go through an entire directory structure (starting at the current working directory, or given an ...
0
votes
1answer
169 views
Checking existence of file with underscore in file name in zsh
I am writing a very simple script which will link shared configuration files. For some reason it does not behave as i expected for file with underscore in name. Does _ (underscore) means something ...
1
vote
1answer
92 views
Load command parameters from upper level file
I've come across an interesting problem that I have not yet been able to solve satisfyingly.
Consider a note taking command that takes two arguments:
note $project $note
That simply files the ...
3
votes
4answers
215 views
Run a given command on every subpath of a long path
Say I have a long path such as:
/a/b/c/d/e/f
I would like to run a command only on each of the subpaths of the path:
e.g. If my command is cmd, I am looking for a one-liner that can do (perhaps ...
6
votes
4answers
2k views
How to define and load your own shell function in zsh
I am having a hard time defining and running my own shell functions in zsh. I followed the instructions on the official documentation and tried with easy example first, but I failed to get it work.
...
2
votes
2answers
250 views
zsh: excluding files from a pattern
Say I have the following files:
|-- bar
`-- foo
|-- type_A_1
|-- type_A_2
|-- type_B_1
|-- type_B_2
|-- type_B_xx
|-- type_B_xx
`-- something_else
I thought the ...
1
vote
1answer
105 views
Files with no .sh extension not considered for autocompletion in zsh
I have noticed that unless I add an .sh extension to my shell scripts, Zsh does not suggest them for autocompletion for execution despite having them in my PATH. I have the same problem if I cd into ...
10
votes
3answers
1k views
How to properly collect an array of lines in zsh
I thought the following would group the output of my_command in an array of lines:
IFS='\n' array_of_lines=$(my_command);
so that $array_of_lines[1] would refer to the first line in the output of ...
1
vote
2answers
489 views
Why doesn't the following work?: while true; do “$my_command”; sleep 1; done
Following up on the top answer to this question, I thought I could:
1) Define a command:
cmd='for x in $(my_command | grep keyword | cut -d" " -f1); do command2 "arguments" $x; done'
2) Run it ...
6
votes
4answers
2k views
How can I detect if the shell is controlled from SSH?
I want to detect from a shell script (more specifically .zshrc) if it is controlled through SSH. I tried the HOST variable but it's always the name of the computer which is running the shell. Can I ...