Questions tagged [shell]
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, …). For shell scripts with errors, please check them in http://shellcheck.net before posting here.
12,284 questions
3
votes
1
answer
161
views
Handling of Single Quotes inside a Here-Document
According to the Shell Command Language Specification: "2.7.4 Here-Document":
Any <backslash> characters in the input shall behave as the <backslash> inside double-quotes (see 2....
0
votes
2
answers
62
views
Why is `systemctl show-environment --user` different from the environment available to systemd service when running as the same user
While I was trying to write a service that uses a user's environment variables (loaded via .profile), I noticed that systemctl show-environment --user (run as e.g. myuser) would show me a certain set ...
0
votes
2
answers
80
views
How can I read a single key press from a user if it's either the Escape key or a function key?
I'm writing a shell script that's aimed to be as portable and POSIX-compatible as possible, so usage of bash-only commands or high-level input libraries is undesirable.
I'm looking for a way to read a ...
7
votes
4
answers
805
views
Are there filesystem "tricks" that may make `rm -rf /dir/*` accidentally delete things outside of `/dir`?
I'm creating a script that runs as root, which needs to run some code (network download and archive unpacking code to be specific) that has some unavoidable attack surface. To lower the damage if this ...
0
votes
0
answers
65
views
the shell escape security issue with the container
I have develop a latex render engine that run with kubernetes container pod, now I want to supprot the minted package that need to open the shell escape feature.
use std::process::Command;
use std::...
1
vote
1
answer
61
views
Cancel just second command of bash logical AND operator [duplicate]
It often happens that I have some long task running, like compiling a program, running tests or copying large archives. Once I am done with whatever else I was doing, I want to leave the computer ...
5
votes
3
answers
1k
views
POSIX sh alternative for bash's regexp matching
I am using this code to parse the first argument passed to my script. It error handles and it works just the way I want it:
if [ -z "$action" ]; then
printf "[${c_RED}ERROR${c_RESET}...
3
votes
1
answer
145
views
Wine cmd automatically escapes quotes, adds backslash
$ wine cmd /c 'echo "hello world"'
\"hello world\"
Where do the backslashes come from?
The command behaves differently in an interactive session:
$ wine cmd
Microsoft Windows 6.1....
4
votes
1
answer
263
views
Choice of field separator affects sort's ordering
Suppose we have a script named test_sort in our $PATH with the following contents:
#!/bin/bash
function echo_text () {
printf -- "%s\n" "$fc$oc$fs$lc"
printf -- "%s\n&...
1
vote
2
answers
103
views
Sorting output from find more like tree --dirsfirst -F
Here is a sample directory tree as it would appear if it were sorted in character code order (i.e., directories are not listed first):
${PREFIX}/
.bashrc
.include.sh.d/
common.sh
...
14
votes
2
answers
1k
views
Why do shell control statement have that syntax (semicolon/newline+then/do)
I of course realize the need to have something that separates the condition to the actual commands to be executed under the control statement, but why were it chosen to use both semicolon and a ...
0
votes
1
answer
121
views
LF file manager : how to go back to $OLDPWD?
What do I want :
On the file manager lf, we can bind some keyboard shortcuts to do either a lf command with :, or a shell command with $, !, or other symbols.
According to the documentation, there is ...
5
votes
2
answers
311
views
Why are there so many shell scripts using "x$var" = "xabc" instead of "$var" = "abc"? [duplicate]
In the old times of DOS batch scripts, the only way to check for a variable to be empty or to allow an empty variable was to prepend (or append) a known letter, commonly the letter x, because there ...
0
votes
0
answers
72
views
pgrep executable matching specific (current) user only
In a code review on Final look at my Lightshot print screen Linux handler POSIX shell script, specifically in this short answer, it has been pointed out to me, that if there are multiple X servers ...
0
votes
0
answers
47
views
User can't execute a shell script based on shebang but ok when interpreter directly invoked [duplicate]
Context
I have a system user caddy and a shell script placed under /run/caddy/caddy-cert-obtained-wrapper.sh.
/run and /run/caddy are owned by root:root with permissions 0755.
caddy-cert-obtained-...