When the script is done, any changes that it made to the environment are discarded. . script The above sources the script. It is as if the commands had been typed in directly. Any environment changes are kept. source script This also sources the script. The source command is not required by POSIX and therefore is less portable than the shorter ..
Your example provides the same result, but the purpose of eval and source is different. source is usually used for providing a library for other scripts, while eval is used only to evaluate commands. eval should be avoided if possible, because there is no guarantee that the eval 'ed string is clean; sanity checks must be done, using subshell.
source is a shell keyword that is supposed to be used like this: source file where file contains valid shell commands. These shell commands will be executed in the current shell as if typed from the command line.
I accidentally sourced the wrong environment from a script. Is there any way to 'unsource' it or in other words to revert it and restore the previous environment? The obvious answer is to start fr...
To add global exports, add a new file to /etc/profile.d/ add global aliases to /etc/bash.bashrc or /etc/bashrc depending on your distro (see /etc/profile around line 18 # Source global bash config (works only for interactive shells)
Although the contents (size) in bytes of both source and destination are the same, the amount of space it takes up is less on the local HDD compared to the amount it takes up on the cloud storage server disk. To avoid this discrepency, apparent--size should be used to show file space usage when comparing source and destination files from rsync.
When I try to use source from the cron job (I have tried both directly in crontab and in a script called by crontab) it doesn't seem to work. I made a simplified version of my project to demonstrate the issue (including rsyslog for logging): Dockerfile: FROM debian:jessie # Install aws and cron RUN apt-get -yqq update
How can I use ffmpeg to reduce the size of a video by lowering the quality (as minimally as possible, naturally, because I need it to run on a mobile device that doesn't have much available space)?...
I've read that BASH_SOURCE should be populated with the name of the executing script (and it works!). But why does BASH_SOURCE hold the name of the executing script, when it is defined in man bash as an array of source filenames corresponding to shell functions?
I think I read something a while back about this, but I can't remember how it's done. Essentially, I have a service in /etc/init.d which I'd like to start automatically at boot time. I remember i...