mirror of
https://github.com/rawiriblundell/wiki.bash-hackers.org
synced 2024-12-25 06:00:41 +01:00
Completed checks for missed targets
This commit is contained in:
parent
70c107ca1f
commit
407c77115e
11
README.md
11
README.md
@ -2,14 +2,12 @@
|
|||||||
|
|
||||||
Extraction of wiki.bash-hackers.org from the Wayback Machine
|
Extraction of wiki.bash-hackers.org from the Wayback Machine
|
||||||
|
|
||||||
This is targeting pages that have been captured by the Wayback Machine that specifically have `'?do=edit'` on the end of their URL. This gives us the Dokuwiki Markup source.
|
This is targeting pages that have been captured by the Wayback Machine that specifically have `'?do=edit'` on the end of their URL. These pages give us the Dokuwiki Markup source, relatively unmolested.
|
||||||
|
|
||||||
See the incomplete script "archive_crawler" to see my working.
|
See the incomplete script "archive_crawler" to see my working. I would not recommend blindly running it - it's beta quality at best. Just read it and this page to follow the logic... or just fork this repo... or whatever, I'm not your Dad.
|
||||||
|
|
||||||
- TODO: Parse the already downloaded files for any missing links
|
- TODO: Markdown linting and transformations
|
||||||
- TODO: Markdown conversion from Dokuwiki Markup to GitHub Markdown using pandoc
|
- TODO: Perhaps add a "This was downloaded from [wayback url here] on [date]" to each page...
|
||||||
- TODO: Markdown linting
|
|
||||||
- TODO: Rinse and repeat
|
|
||||||
|
|
||||||
## Getting the latest capture URL from archive.org
|
## Getting the latest capture URL from archive.org
|
||||||
|
|
||||||
@ -72,6 +70,7 @@ So basically, we remove everything from the first line to the line that contains
|
|||||||
As per the original wiki.bash-hackers.org:
|
As per the original wiki.bash-hackers.org:
|
||||||
|
|
||||||
> Except where otherwise noted, content on this wiki is licensed under the following license:
|
> Except where otherwise noted, content on this wiki is licensed under the following license:
|
||||||
|
>
|
||||||
> [GNU Free Documentation License 1.3](https://web.archive.org/web/20220930131429/http://www.gnu.org/licenses/fdl-1.3.html)
|
> [GNU Free Documentation License 1.3](https://web.archive.org/web/20220930131429/http://www.gnu.org/licenses/fdl-1.3.html)
|
||||||
|
|
||||||
## COPYRIGHT
|
## COPYRIGHT
|
||||||
|
@ -7,6 +7,16 @@
|
|||||||
# These pages present the original Dokuwiki Markup source of the respective page.
|
# These pages present the original Dokuwiki Markup source of the respective page.
|
||||||
# So with a little massaging, we should be able to extract said Dokuwiki Markup.
|
# So with a little massaging, we should be able to extract said Dokuwiki Markup.
|
||||||
|
|
||||||
|
# Ensure we have our required commands, otherwise fail early
|
||||||
|
cmd_err=0
|
||||||
|
for cmd in grep sed tr sort uniq mkdir curl jq pandoc; do
|
||||||
|
if ! command -v "${cmd}" >/dev/null 2>&1; then
|
||||||
|
printf -- '%s\n' "This script requires ${cmd} but it was not found in PATH." >&2
|
||||||
|
(( cmd_err++ ))
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
(( cmd_err > 0 )) && exit 1
|
||||||
|
|
||||||
# Where are we playing on the local file system?
|
# Where are we playing on the local file system?
|
||||||
basedir="${HOME}/git/wiki.bash-hackers.org"
|
basedir="${HOME}/git/wiki.bash-hackers.org"
|
||||||
|
|
||||||
@ -50,11 +60,19 @@ get_wayback_target() {
|
|||||||
# Strip out everything after 'bash-hackers.org' and '?do=edit' e.g.
|
# Strip out everything after 'bash-hackers.org' and '?do=edit' e.g.
|
||||||
# http://web.archive.org/web/20220615023742/https://wiki.bash-hackers.org/howto/mutex?do=edit -> /howto/mutex
|
# http://web.archive.org/web/20220615023742/https://wiki.bash-hackers.org/howto/mutex?do=edit -> /howto/mutex
|
||||||
target_path="$(sed -n 's/.*bash-hackers.org//p' <<< "${remote_target}" | sed -e 's/?do=edit//')"
|
target_path="$(sed -n 's/.*bash-hackers.org//p' <<< "${remote_target}" | sed -e 's/?do=edit//')"
|
||||||
|
|
||||||
|
# If we already have it, bounce out
|
||||||
|
if [[ -f "./${target_path}.markup" ]]; then
|
||||||
|
printf -- '%s\n' "./${target_path}.markup appears to already exist. Remove it and re-run this script to force a fresh download."
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
# Get the dirname e.g. /howto/mutex?do=edit -> /howto
|
# Get the dirname e.g. /howto/mutex?do=edit -> /howto
|
||||||
target_dirname="$(dirname "${target_path}")"
|
target_dirname="$(dirname "${target_path}")"
|
||||||
# Create the path, ensuring that we strip the leading slash just-in-case e.g. /howto -> howto
|
# Create the path, ensuring that we strip the leading slash just-in-case e.g. /howto -> howto
|
||||||
mkdir -p "${basedir:?FATAL - basedir unset}/${target_dirname/\//}"
|
mkdir -p "${basedir:?FATAL - basedir unset}/${target_dirname/\//}"
|
||||||
# Download the remote target to the local path
|
# Download the remote target to the local path
|
||||||
|
printf -- '%s\n' "Retrieving into ./${target_path}.markup"
|
||||||
curl -s -X GET "${remote_target}" | extract_markup - > "./${target_path}.markup"
|
curl -s -X GET "${remote_target}" | extract_markup - > "./${target_path}.markup"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -68,14 +86,18 @@ get_wayback_target() {
|
|||||||
# Then we grep out just the link substrings
|
# Then we grep out just the link substrings
|
||||||
# Then we filter out friendly names (this could be brutally tidied up, it's late and I'm lazy right now)
|
# Then we filter out friendly names (this could be brutally tidied up, it's late and I'm lazy right now)
|
||||||
# Then we append "/?do=edit/"
|
# Then we append "/?do=edit/"
|
||||||
|
# Then we filter out unwanted garbage one last time
|
||||||
scrape_targets() {
|
scrape_targets() {
|
||||||
local source_file
|
local source_file
|
||||||
source_file="${1:?No target specified}"
|
source_file="${1:?No target specified}"
|
||||||
grep "\[\[" "${source_file}" |
|
for source_file in "${@}"; do
|
||||||
grep -v "\[\[http" |
|
grep "\[\[" "${source_file}" |
|
||||||
grep -o "\[\[.*\]\]" |
|
grep -v "\[\[http" |
|
||||||
sed -e 's/ | .*\]\]/]]/g' -e 's/| .*\]\]/]]/g' -e 's/|.*\]\]/]]/g' -e 's/\[\[/\//g' -e 's/\]\]/?do=edit/g' |
|
grep -o "\[\[.*\]\]" |
|
||||||
tr ':' '/'
|
sed -e 's/ | .*\]\]/]]/g' -e 's/| .*\]\]/]]/g' -e 's/|.*\]\]/]]/g' -e 's/\[\[/\//g' -e 's/\]\]/?do=edit/g' |
|
||||||
|
tr ':' '/' |
|
||||||
|
grep -Ev '==|!=|\$|#|/ |nowiki|ftp'
|
||||||
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
# Because of the structure of the downloaded files,
|
# Because of the structure of the downloaded files,
|
||||||
@ -94,14 +116,14 @@ extract_markup() {
|
|||||||
cd "${basedir}" || exit 1
|
cd "${basedir}" || exit 1
|
||||||
|
|
||||||
# If it's not already here, get the start page
|
# If it's not already here, get the start page
|
||||||
if [[ ! -f start ]]; then
|
if [[ ! -f start.markup ]]; then
|
||||||
get_wayback_target https://web.archive.org/web/20220930131429/https://wiki.bash-hackers.org/start?do=edit
|
get_wayback_target https://web.archive.org/web/20220930131429/https://wiki.bash-hackers.org/start?do=edit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Extract a list of targets from the start page
|
# Extract a list of targets from the start page
|
||||||
while read -r; do
|
while read -r; do
|
||||||
prepend "https://wiki.bash-hackers.org" "${REPLY}"
|
prepend "https://wiki.bash-hackers.org" "${REPLY}"
|
||||||
done < <(scrape_targets start) > raw_targets
|
done < <(scrape_targets start.markup) > raw_targets
|
||||||
|
|
||||||
# For each scraped target, validate that they're available from archive.org
|
# For each scraped target, validate that they're available from archive.org
|
||||||
# and in doing so, generate a list of the urls for the latest captures of each
|
# and in doing so, generate a list of the urls for the latest captures of each
|
||||||
@ -113,9 +135,25 @@ extract_markup() {
|
|||||||
while read -r; do
|
while read -r; do
|
||||||
get_wayback_target "${REPLY}"
|
get_wayback_target "${REPLY}"
|
||||||
done < waybacktargets
|
done < waybacktargets
|
||||||
)
|
|
||||||
|
|
||||||
# Convert from dokuwiki markup to github markdown
|
# Now we parse through the .markup files and try to generate a fresh list of raw_targets
|
||||||
while read -r; do
|
# With extglob, this would be
|
||||||
pandoc --from dokuwiki --to gfm --toc --no-highlight "${REPLY}" > "${REPLY/.markup/}.md"
|
# scrape_targets **/*.markup | sort | uniq
|
||||||
done < <(find . -name "*.markup")
|
while read -r; do
|
||||||
|
scrape_targets "${REPLY}"
|
||||||
|
done < <(find . -name "*.markup") | sort | uniq > raw_targets
|
||||||
|
|
||||||
|
# And as before, we generate a list of targets and retrieve them
|
||||||
|
while read -r; do
|
||||||
|
check_wayback_availability "${REPLY}"
|
||||||
|
done < raw_targets > waybacktargets
|
||||||
|
|
||||||
|
while read -r; do
|
||||||
|
get_wayback_target "${REPLY}"
|
||||||
|
done < waybacktargets
|
||||||
|
|
||||||
|
# Next, we convert from dokuwiki markup to github markdown
|
||||||
|
while read -r; do
|
||||||
|
pandoc --from dokuwiki --to gfm --toc --no-highlight "${REPLY}" > "${REPLY/.markup/}.md"
|
||||||
|
done < <(find . -name "*.markup")
|
||||||
|
)
|
||||||
|
164
waybacktargets
164
waybacktargets
@ -1,113 +1,89 @@
|
|||||||
http://web.archive.org/web/20220615022549/https://wiki.bash-hackers.org/bash4?do=edit
|
http://web.archive.org/web/20220615022549/https://wiki.bash-hackers.org/bash4?do=edit
|
||||||
http://web.archive.org/web/20220615024720/https://wiki.bash-hackers.org/wishes?do=edit
|
http://web.archive.org/web/20230129220642/https://wiki.bash-hackers.org/commands/builtin/caller?do=edit
|
||||||
http://web.archive.org/web/20220615022549/https://wiki.bash-hackers.org/bash4?do=edit
|
http://web.archive.org/web/20211028115259/https://wiki.bash-hackers.org/commands/builtin/continuebreak?do=edit
|
||||||
http://web.archive.org/web/20220615024158/https://wiki.bash-hackers.org/scripting/style?do=edit
|
http://web.archive.org/web/20220706172727/https://wiki.bash-hackers.org/commands/builtin/declare?do=edit
|
||||||
http://web.archive.org/web/20221128144910/https://wiki.bash-hackers.org/scripting/basics?do=edit
|
http://web.archive.org/web/20230321110953/https://wiki.bash-hackers.org/commands/builtin/echo?do=edit
|
||||||
http://web.archive.org/web/20220706152622/https://wiki.bash-hackers.org/scripting/newbie_traps?do=edit
|
http://web.archive.org/web/20220615024747/https://wiki.bash-hackers.org/commands/builtin/eval?do=edit
|
||||||
|
http://web.archive.org/web/20230322163050/https://wiki.bash-hackers.org/commands/builtin/exec?do=edit
|
||||||
|
http://web.archive.org/web/20220615023036/https://wiki.bash-hackers.org/commands/builtin/exit?do=edit
|
||||||
|
http://web.archive.org/web/20221129183005/https://wiki.bash-hackers.org/commands/builtin/export?do=edit
|
||||||
|
http://web.archive.org/web/20211127235659/https://wiki.bash-hackers.org/commands/builtin/false?do=edit
|
||||||
|
http://web.archive.org/web/20220615023101/https://wiki.bash-hackers.org/commands/builtin/kill?do=edit
|
||||||
|
http://web.archive.org/web/20220615023106/https://wiki.bash-hackers.org/commands/builtin/let?do=edit
|
||||||
|
http://web.archive.org/web/20220523185434/https://wiki.bash-hackers.org/commands/builtin/local?do=edit
|
||||||
|
http://web.archive.org/web/20221205021326/https://wiki.bash-hackers.org/commands/builtin/mapfile?do=edit
|
||||||
|
http://web.archive.org/web/20220929100731/https://wiki.bash-hackers.org/commands/builtin/printf?do=edit
|
||||||
|
http://web.archive.org/web/20221006044544/https://wiki.bash-hackers.org/commands/builtin/read?do=edit
|
||||||
|
http://web.archive.org/web/20220615023134/https://wiki.bash-hackers.org/commands/builtin/readonly?do=edit
|
||||||
|
http://web.archive.org/web/20210622205700/https://wiki.bash-hackers.org/commands/builtin/return?do=edit
|
||||||
|
http://web.archive.org/web/20220706161551/https://wiki.bash-hackers.org/commands/builtin/set?do=edit
|
||||||
|
http://web.archive.org/web/20220706172110/https://wiki.bash-hackers.org/commands/builtin/shift?do=edit
|
||||||
|
http://web.archive.org/web/20220702043749/https://wiki.bash-hackers.org/commands/builtin/shopt?do=edit
|
||||||
|
http://web.archive.org/web/20221209023650/https://wiki.bash-hackers.org/commands/builtin/source?do=edit
|
||||||
|
http://web.archive.org/web/20221209024037/https://wiki.bash-hackers.org/commands/builtin/times?do=edit
|
||||||
|
http://web.archive.org/web/20221006200243/https://wiki.bash-hackers.org/commands/builtin/trap?do=edit
|
||||||
|
http://web.archive.org/web/20220811050800/https://wiki.bash-hackers.org/commands/builtin/true?do=edit
|
||||||
|
http://web.archive.org/web/20221128015008/https://wiki.bash-hackers.org/commands/builtin/unset?do=edit
|
||||||
|
http://web.archive.org/web/20221007160743/https://wiki.bash-hackers.org/commands/builtin/wait?do=edit
|
||||||
|
http://web.archive.org/web/20220615023229/https://wiki.bash-hackers.org/commands/classictest?do=edit
|
||||||
|
http://web.archive.org/web/20221006201754/https://wiki.bash-hackers.org/dict/index?do=edit
|
||||||
|
http://web.archive.org/web/20220615023700/https://wiki.bash-hackers.org/howto/calculate-dc?do=edit
|
||||||
|
http://web.archive.org/web/20220615023702/https://wiki.bash-hackers.org/howto/collapsing_functions?do=edit
|
||||||
|
http://web.archive.org/web/20220929111202/https://wiki.bash-hackers.org/howto/conffile?do=edit
|
||||||
|
http://web.archive.org/web/20220615023714/https://wiki.bash-hackers.org/howto/dissectabadoneliner?do=edit
|
||||||
|
http://web.archive.org/web/20221007155747/https://wiki.bash-hackers.org/howto/edit-ed?do=edit
|
||||||
|
http://web.archive.org/web/20230129212335/https://wiki.bash-hackers.org/howto/getopts_tutorial?do=edit
|
||||||
|
http://web.archive.org/web/20220615023742/https://wiki.bash-hackers.org/howto/mutex?do=edit
|
||||||
|
http://web.archive.org/web/20221007145722/https://wiki.bash-hackers.org/howto/pax?do=edit
|
||||||
|
http://web.archive.org/web/20230315170628/https://wiki.bash-hackers.org/howto/redirection_tutorial?do=edit
|
||||||
|
http://web.archive.org/web/20220810135029/https://wiki.bash-hackers.org/howto/start?do=edit
|
||||||
|
http://web.archive.org/web/20220615023812/https://wiki.bash-hackers.org/howto/testing-your-scripts?do=edit
|
||||||
|
http://web.archive.org/web/20220704093350/https://wiki.bash-hackers.org/internals/shell_options?do=edit
|
||||||
|
http://web.archive.org/web/20221206131831/https://wiki.bash-hackers.org/misc/bashphorisms?do=edit
|
||||||
|
http://web.archive.org/web/20220817020829/https://wiki.bash-hackers.org/misc/readthesourceluke?do=edit
|
||||||
|
http://web.archive.org/web/20220615023944/https://wiki.bash-hackers.org/misc/shell_humor?do=edit
|
||||||
http://web.archive.org/web/20220706170849/https://wiki.bash-hackers.org/scripting/bashbehaviour?do=edit
|
http://web.archive.org/web/20220706170849/https://wiki.bash-hackers.org/scripting/bashbehaviour?do=edit
|
||||||
|
http://web.archive.org/web/20221006034255/https://wiki.bash-hackers.org/scripting/bashchanges?do=edit
|
||||||
|
http://web.archive.org/web/20221128144910/https://wiki.bash-hackers.org/scripting/basics?do=edit
|
||||||
|
http://web.archive.org/web/20221206130347/https://wiki.bash-hackers.org/scripting/debuggingtips?do=edit
|
||||||
|
http://web.archive.org/web/20220706152622/https://wiki.bash-hackers.org/scripting/newbie_traps?do=edit
|
||||||
|
http://web.archive.org/web/20220615024059/https://wiki.bash-hackers.org/scripting/nonportable?do=edit
|
||||||
|
http://web.archive.org/web/20221007181556/https://wiki.bash-hackers.org/scripting/obsolete?do=edit
|
||||||
http://web.archive.org/web/20220925044221/https://wiki.bash-hackers.org/scripting/posparams?do=edit
|
http://web.archive.org/web/20220925044221/https://wiki.bash-hackers.org/scripting/posparams?do=edit
|
||||||
http://web.archive.org/web/20221203114625/https://wiki.bash-hackers.org/scripting/processtree?do=edit
|
http://web.archive.org/web/20221203114625/https://wiki.bash-hackers.org/scripting/processtree?do=edit
|
||||||
http://web.archive.org/web/20221007181556/https://wiki.bash-hackers.org/scripting/obsolete?do=edit
|
http://web.archive.org/web/20220615024158/https://wiki.bash-hackers.org/scripting/style?do=edit
|
||||||
http://web.archive.org/web/20220615024059/https://wiki.bash-hackers.org/scripting/nonportable?do=edit
|
|
||||||
http://web.archive.org/web/20221206130347/https://wiki.bash-hackers.org/scripting/debuggingtips?do=edit
|
|
||||||
http://web.archive.org/web/20220615024126/https://wiki.bash-hackers.org/scripting/terminalcodes?do=edit
|
http://web.archive.org/web/20220615024126/https://wiki.bash-hackers.org/scripting/terminalcodes?do=edit
|
||||||
http://web.archive.org/web/20220615024149/https://wiki.bash-hackers.org/scripting/tutoriallist?do=edit
|
http://web.archive.org/web/20220615024149/https://wiki.bash-hackers.org/scripting/tutoriallist?do=edit
|
||||||
http://web.archive.org/web/20220925050830/https://wiki.bash-hackers.org/snipplets/start?do=edit
|
http://web.archive.org/web/20220925050830/https://wiki.bash-hackers.org/snipplets/start?do=edit
|
||||||
http://web.archive.org/web/20220817020829/https://wiki.bash-hackers.org/misc/readthesourceluke?do=edit
|
|
||||||
http://web.archive.org/web/20220810135029/https://wiki.bash-hackers.org/howto/start?do=edit
|
|
||||||
http://web.archive.org/web/20220615023742/https://wiki.bash-hackers.org/howto/mutex?do=edit
|
|
||||||
http://web.archive.org/web/20220929111202/https://wiki.bash-hackers.org/howto/conffile?do=edit
|
|
||||||
http://web.archive.org/web/20221007155747/https://wiki.bash-hackers.org/howto/edit-ed?do=edit
|
|
||||||
http://web.archive.org/web/20220615023702/https://wiki.bash-hackers.org/howto/collapsing_functions?do=edit
|
|
||||||
http://web.archive.org/web/20230315170628/https://wiki.bash-hackers.org/howto/redirection_tutorial?do=edit
|
|
||||||
http://web.archive.org/web/20220615023700/https://wiki.bash-hackers.org/howto/calculate-dc?do=edit
|
|
||||||
http://web.archive.org/web/20221007145722/https://wiki.bash-hackers.org/howto/pax?do=edit
|
|
||||||
http://web.archive.org/web/20230129212335/https://wiki.bash-hackers.org/howto/getopts_tutorial?do=edit
|
|
||||||
http://web.archive.org/web/20220615023714/https://wiki.bash-hackers.org/howto/dissectabadoneliner?do=edit
|
|
||||||
http://web.archive.org/web/20220615023812/https://wiki.bash-hackers.org/howto/testing-your-scripts?do=edit
|
|
||||||
http://web.archive.org/web/20221006034255/https://wiki.bash-hackers.org/scripting/bashchanges?do=edit
|
|
||||||
http://web.archive.org/web/20221003082936/https://wiki.bash-hackers.org/syntax/basicgrammar?do=edit
|
|
||||||
http://web.archive.org/web/20220615024531/https://wiki.bash-hackers.org/syntax/quoting?do=edit
|
|
||||||
http://web.archive.org/web/20220615024523/https://wiki.bash-hackers.org/syntax/grammar/parser_exec?do=edit
|
|
||||||
http://web.archive.org/web/20230315051030/https://wiki.bash-hackers.org/syntax/words?do=edit
|
|
||||||
http://web.archive.org/web/20220812025111/https://wiki.bash-hackers.org/syntax/pattern?do=edit
|
|
||||||
http://web.archive.org/web/20220701142324/https://wiki.bash-hackers.org/syntax/arith_expr?do=edit
|
http://web.archive.org/web/20220701142324/https://wiki.bash-hackers.org/syntax/arith_expr?do=edit
|
||||||
http://web.archive.org/web/20220704093350/https://wiki.bash-hackers.org/internals/shell_options?do=edit
|
|
||||||
http://web.archive.org/web/20230315170826/https://wiki.bash-hackers.org/syntax/redirection?do=edit
|
|
||||||
http://web.archive.org/web/20221006202932/https://wiki.bash-hackers.org/syntax/shellvars?do=edit
|
|
||||||
http://web.archive.org/web/20230325102835/https://wiki.bash-hackers.org/syntax/arrays?do=edit
|
http://web.archive.org/web/20230325102835/https://wiki.bash-hackers.org/syntax/arrays?do=edit
|
||||||
http://web.archive.org/web/20220701130330/https://wiki.bash-hackers.org/syntax/ccmd/intro?do=edit
|
http://web.archive.org/web/20221003082936/https://wiki.bash-hackers.org/syntax/basicgrammar?do=edit
|
||||||
|
http://web.archive.org/web/20221007161715/https://wiki.bash-hackers.org/syntax/ccmd/arithmetic_eval?do=edit
|
||||||
|
http://web.archive.org/web/20221206151450/https://wiki.bash-hackers.org/syntax/ccmd/c_for?do=edit
|
||||||
|
http://web.archive.org/web/20221206141007/https://wiki.bash-hackers.org/syntax/ccmd/case?do=edit
|
||||||
|
http://web.archive.org/web/20230326132808/https://wiki.bash-hackers.org/syntax/ccmd/classic_for?do=edit
|
||||||
http://web.archive.org/web/20221007144042/https://wiki.bash-hackers.org/syntax/ccmd/grouping_plain?do=edit
|
http://web.archive.org/web/20221007144042/https://wiki.bash-hackers.org/syntax/ccmd/grouping_plain?do=edit
|
||||||
http://web.archive.org/web/20221007150932/https://wiki.bash-hackers.org/syntax/ccmd/grouping_subshell?do=edit
|
http://web.archive.org/web/20221007150932/https://wiki.bash-hackers.org/syntax/ccmd/grouping_subshell?do=edit
|
||||||
http://web.archive.org/web/20220925020400/https://wiki.bash-hackers.org/syntax/ccmd/if_clause?do=edit
|
http://web.archive.org/web/20220925020400/https://wiki.bash-hackers.org/syntax/ccmd/if_clause?do=edit
|
||||||
http://web.archive.org/web/20221206141007/https://wiki.bash-hackers.org/syntax/ccmd/case?do=edit
|
http://web.archive.org/web/20220701130330/https://wiki.bash-hackers.org/syntax/ccmd/intro?do=edit
|
||||||
http://web.archive.org/web/20230326132808/https://wiki.bash-hackers.org/syntax/ccmd/classic_for?do=edit
|
|
||||||
http://web.archive.org/web/20221206151450/https://wiki.bash-hackers.org/syntax/ccmd/c_for?do=edit
|
|
||||||
http://web.archive.org/web/20221201033702/https://wiki.bash-hackers.org/syntax/ccmd/while_loop?do=edit
|
|
||||||
http://web.archive.org/web/20220615024421/https://wiki.bash-hackers.org/syntax/ccmd/until_loop?do=edit
|
http://web.archive.org/web/20220615024421/https://wiki.bash-hackers.org/syntax/ccmd/until_loop?do=edit
|
||||||
http://web.archive.org/web/20221007161715/https://wiki.bash-hackers.org/syntax/ccmd/arithmetic_eval?do=edit
|
|
||||||
http://web.archive.org/web/20170629143024/http://wiki.bash-hackers.org/syntax/ccmd/user_select?do=edit
|
http://web.archive.org/web/20170629143024/http://wiki.bash-hackers.org/syntax/ccmd/user_select?do=edit
|
||||||
http://web.archive.org/web/20221203044712/https://wiki.bash-hackers.org/syntax/expansion/intro?do=edit
|
http://web.archive.org/web/20221201033702/https://wiki.bash-hackers.org/syntax/ccmd/while_loop?do=edit
|
||||||
http://web.archive.org/web/20221206144634/https://wiki.bash-hackers.org/syntax/expansion/brace?do=edit
|
|
||||||
http://web.archive.org/web/20220925204651/https://wiki.bash-hackers.org/syntax/expansion/tilde?do=edit
|
|
||||||
http://web.archive.org/web/20230316102937/https://wiki.bash-hackers.org/syntax/pe?do=edit
|
|
||||||
http://web.archive.org/web/20220706152308/https://wiki.bash-hackers.org/syntax/expansion/cmdsubst?do=edit
|
|
||||||
http://web.archive.org/web/20221006211454/https://wiki.bash-hackers.org/syntax/expansion/proc_subst?do=edit
|
|
||||||
http://web.archive.org/web/20220706154025/https://wiki.bash-hackers.org/syntax/expansion/arith?do=edit
|
http://web.archive.org/web/20220706154025/https://wiki.bash-hackers.org/syntax/expansion/arith?do=edit
|
||||||
http://web.archive.org/web/20220615024508/https://wiki.bash-hackers.org/syntax/expansion/wordsplit?do=edit
|
http://web.archive.org/web/20221206144634/https://wiki.bash-hackers.org/syntax/expansion/brace?do=edit
|
||||||
|
http://web.archive.org/web/20220706152308/https://wiki.bash-hackers.org/syntax/expansion/cmdsubst?do=edit
|
||||||
http://web.archive.org/web/20220615024456/https://wiki.bash-hackers.org/syntax/expansion/globs?do=edit
|
http://web.archive.org/web/20220615024456/https://wiki.bash-hackers.org/syntax/expansion/globs?do=edit
|
||||||
http://web.archive.org/web/20220706172727/https://wiki.bash-hackers.org/commands/builtin/declare?do=edit
|
http://web.archive.org/web/20221203044712/https://wiki.bash-hackers.org/syntax/expansion/intro?do=edit
|
||||||
http://web.archive.org/web/20221129183005/https://wiki.bash-hackers.org/commands/builtin/export?do=edit
|
http://web.archive.org/web/20221006211454/https://wiki.bash-hackers.org/syntax/expansion/proc_subst?do=edit
|
||||||
http://web.archive.org/web/20220615024747/https://wiki.bash-hackers.org/commands/builtin/eval?do=edit
|
http://web.archive.org/web/20220925204651/https://wiki.bash-hackers.org/syntax/expansion/tilde?do=edit
|
||||||
http://web.archive.org/web/20220523185434/https://wiki.bash-hackers.org/commands/builtin/local?do=edit
|
http://web.archive.org/web/20220615024508/https://wiki.bash-hackers.org/syntax/expansion/wordsplit?do=edit
|
||||||
http://web.archive.org/web/20220615023134/https://wiki.bash-hackers.org/commands/builtin/readonly?do=edit
|
http://web.archive.org/web/20220615024523/https://wiki.bash-hackers.org/syntax/grammar/parser_exec?do=edit
|
||||||
http://web.archive.org/web/20221128015008/https://wiki.bash-hackers.org/commands/builtin/unset?do=edit
|
|
||||||
http://web.archive.org/web/20220706172110/https://wiki.bash-hackers.org/commands/builtin/shift?do=edit
|
|
||||||
http://web.archive.org/web/20221203044612/https://wiki.bash-hackers.org/syntax/keywords/coproc?do=edit
|
http://web.archive.org/web/20221203044612/https://wiki.bash-hackers.org/syntax/keywords/coproc?do=edit
|
||||||
http://web.archive.org/web/20230321110953/https://wiki.bash-hackers.org/commands/builtin/echo?do=edit
|
http://web.archive.org/web/20220812025111/https://wiki.bash-hackers.org/syntax/pattern?do=edit
|
||||||
http://web.archive.org/web/20221205021326/https://wiki.bash-hackers.org/commands/builtin/mapfile?do=edit
|
|
||||||
http://web.archive.org/web/20220929100731/https://wiki.bash-hackers.org/commands/builtin/printf?do=edit
|
|
||||||
http://web.archive.org/web/20221006044544/https://wiki.bash-hackers.org/commands/builtin/read?do=edit
|
|
||||||
http://web.archive.org/web/20230129220642/https://wiki.bash-hackers.org/commands/builtin/caller?do=edit
|
|
||||||
http://web.archive.org/web/20220706161551/https://wiki.bash-hackers.org/commands/builtin/set?do=edit
|
|
||||||
http://web.archive.org/web/20220702043749/https://wiki.bash-hackers.org/commands/builtin/shopt?do=edit
|
|
||||||
http://web.archive.org/web/20220811050800/https://wiki.bash-hackers.org/commands/builtin/true?do=edit
|
|
||||||
http://web.archive.org/web/20221209023650/https://wiki.bash-hackers.org/commands/builtin/source?do=edit
|
|
||||||
http://web.archive.org/web/20211127235659/https://wiki.bash-hackers.org/commands/builtin/false?do=edit
|
|
||||||
http://web.archive.org/web/20211028115259/https://wiki.bash-hackers.org/commands/builtin/continuebreak?do=edit
|
|
||||||
http://web.archive.org/web/20220615023106/https://wiki.bash-hackers.org/commands/builtin/let?do=edit
|
|
||||||
http://web.archive.org/web/20210622205700/https://wiki.bash-hackers.org/commands/builtin/return?do=edit
|
|
||||||
http://web.archive.org/web/20220615023229/https://wiki.bash-hackers.org/commands/classictest?do=edit
|
|
||||||
http://web.archive.org/web/20230322163050/https://wiki.bash-hackers.org/commands/builtin/exec?do=edit
|
|
||||||
http://web.archive.org/web/20220615023036/https://wiki.bash-hackers.org/commands/builtin/exit?do=edit
|
|
||||||
http://web.archive.org/web/20220615023101/https://wiki.bash-hackers.org/commands/builtin/kill?do=edit
|
|
||||||
http://web.archive.org/web/20221006200243/https://wiki.bash-hackers.org/commands/builtin/trap?do=edit
|
|
||||||
http://web.archive.org/web/20221209024037/https://wiki.bash-hackers.org/commands/builtin/times?do=edit
|
|
||||||
http://web.archive.org/web/20221007160743/https://wiki.bash-hackers.org/commands/builtin/wait?do=edit
|
|
||||||
http://web.archive.org/web/20230129220642/https://wiki.bash-hackers.org/commands/builtin/caller?do=edit
|
|
||||||
http://web.archive.org/web/20221203044612/https://wiki.bash-hackers.org/syntax/keywords/coproc?do=edit
|
|
||||||
http://web.archive.org/web/20220706172727/https://wiki.bash-hackers.org/commands/builtin/declare?do=edit
|
|
||||||
http://web.archive.org/web/20230322163050/https://wiki.bash-hackers.org/commands/builtin/exec?do=edit
|
|
||||||
http://web.archive.org/web/20220615023106/https://wiki.bash-hackers.org/commands/builtin/let?do=edit
|
|
||||||
http://web.archive.org/web/20221205021326/https://wiki.bash-hackers.org/commands/builtin/mapfile?do=edit
|
|
||||||
http://web.archive.org/web/20220929100731/https://wiki.bash-hackers.org/commands/builtin/printf?do=edit
|
|
||||||
http://web.archive.org/web/20221006044544/https://wiki.bash-hackers.org/commands/builtin/read?do=edit
|
|
||||||
http://web.archive.org/web/20220615023134/https://wiki.bash-hackers.org/commands/builtin/readonly?do=edit
|
|
||||||
http://web.archive.org/web/20220706161551/https://wiki.bash-hackers.org/commands/builtin/set?do=edit
|
|
||||||
http://web.archive.org/web/20220702043749/https://wiki.bash-hackers.org/commands/builtin/shopt?do=edit
|
|
||||||
http://web.archive.org/web/20220615023229/https://wiki.bash-hackers.org/commands/classictest?do=edit
|
|
||||||
http://web.archive.org/web/20221128015008/https://wiki.bash-hackers.org/commands/builtin/unset?do=edit
|
|
||||||
http://web.archive.org/web/20221006201754/https://wiki.bash-hackers.org/dict/index?do=edit
|
|
||||||
http://web.archive.org/web/20221206131831/https://wiki.bash-hackers.org/misc/bashphorisms?do=edit
|
|
||||||
http://web.archive.org/web/20220615023944/https://wiki.bash-hackers.org/misc/shell_humor?do=edit
|
|
||||||
http://web.archive.org/web/20230129212335/https://wiki.bash-hackers.org/howto/getopts_tutorial?do=edit
|
|
||||||
http://web.archive.org/web/20220929100731/https://wiki.bash-hackers.org/commands/builtin/printf?do=edit
|
|
||||||
http://web.archive.org/web/20220615024531/https://wiki.bash-hackers.org/syntax/quoting?do=edit
|
|
||||||
http://web.archive.org/web/20220615023229/https://wiki.bash-hackers.org/commands/classictest?do=edit
|
|
||||||
http://web.archive.org/web/20230316102937/https://wiki.bash-hackers.org/syntax/pe?do=edit
|
http://web.archive.org/web/20230316102937/https://wiki.bash-hackers.org/syntax/pe?do=edit
|
||||||
http://web.archive.org/web/20220925044221/https://wiki.bash-hackers.org/scripting/posparams?do=edit
|
http://web.archive.org/web/20220615024531/https://wiki.bash-hackers.org/syntax/quoting?do=edit
|
||||||
http://web.archive.org/web/20220615022549/https://wiki.bash-hackers.org/bash4?do=edit
|
http://web.archive.org/web/20230315170826/https://wiki.bash-hackers.org/syntax/redirection?do=edit
|
||||||
http://web.archive.org/web/20221007155747/https://wiki.bash-hackers.org/howto/edit-ed?do=edit
|
http://web.archive.org/web/20221006202932/https://wiki.bash-hackers.org/syntax/shellvars?do=edit
|
||||||
http://web.archive.org/web/20221006044544/https://wiki.bash-hackers.org/commands/builtin/read?do=edit
|
http://web.archive.org/web/20230315051030/https://wiki.bash-hackers.org/syntax/words?do=edit
|
||||||
http://web.archive.org/web/20220615023742/https://wiki.bash-hackers.org/howto/mutex?do=edit
|
|
||||||
http://web.archive.org/web/20230315230904/https://wiki.bash-hackers.org/user/thebonsai/imprint?do=edit
|
http://web.archive.org/web/20230315230904/https://wiki.bash-hackers.org/user/thebonsai/imprint?do=edit
|
||||||
|
http://web.archive.org/web/20220615024720/https://wiki.bash-hackers.org/wishes?do=edit
|
||||||
|
Loading…
Reference in New Issue
Block a user