#SolucionarioDelProgramador #GNU_linux : Parámetros línea de Comandos en #java
#programming #programacion #ARGV #Getopt
https://ibolcode.net/roor/2025-11-parametros-linea-de-comandos--java
#SolucionarioDelProgramador #GNU_linux : Parámetros línea de Comandos en #java
#programming #programacion #ARGV #Getopt
https://ibolcode.net/roor/2025-11-parametros-linea-de-comandos--java
#SolucionarioDelProgramador #GNU_linux : Parámetros línea de Comandos en #tcl
#programming #programacion #cmdline #ARGV #Getopt
https://ibolcode.net/roor/2025-11-parametros-linea-de-comandos--tcl
#SolucionarioDelProgramador #GNU_linux : Parámetros línea de Comandos en #bash
#programming #programacion #cmdline #ARGV #Getopt #ShellScripts #shell
https://ibolcode.net/roor/2025-10-parametros-linea-de-comandos--bash
#SolucionarioDelProgramador #GNU_linux : Parámetros línea de Comandos en #Ruby
#programming #programacion #cmdline #ARGV #Getopt
https://ibolcode.net/roor/2025-10-parametros-linea-de-comandos--ruby
#SolucionarioDelProgramador #GNU_linux : Parámetros línea de Comandos en #Perl
#programming #programacion #cmdline #ARGV #Getopt
https://ibolcode.net/roor/2025-09-parametros-linea-de-comandos--perl
Why bother with argv[0]?
https://www.wietzebeukema.nl/blog/why-bother-with-argv0
#ycombinator #argv_lsqb_0_rsqb #argv0 #argv #arg_lsqb_0_rsqb #arg0 #command_line #cmd #command_line_obfuscation #command_line_bypass #edr_obfuscation #cyber #threat_detection #cyber_threat #cyber_threat_detection #edr #endpoint #blue_team #blue_teaming #red_team #red_teaming #threat_hunting #threat_hunter #hunting
Why Bother with Argv[0]?
https://www.wietzebeukema.nl/blog/why-bother-with-argv0
#ycombinator #argv_lsqb_0_rsqb #argv0 #argv #arg_lsqb_0_rsqb #arg0 #command_line #cmd #command_line_obfuscation #command_line_bypass #edr_obfuscation #cyber #threat_detection #cyber_threat #cyber_threat_detection #edr #endpoint #blue_team #blue_teaming #red_team #red_teaming #threat_hunting #threat_hunter #hunting
My zshrc contains the following:
setopt autocd
function cd () {
if (( ${#argv} == 1 )) && [[ -f ${1} ]]; then
[[ ! -e ${1:h} ]] && return 1
builtin cd ${1:h}
else
builtin cd "$@"
fi
}
alias ...='../..'
alias ....='../../..'
alias .....='../../../..'
This allows things like `cd /etc/fstab` to go to `/etc`, `...` to go 2 directories up and `/blah/fasel` to go to `/bla/fasel` without explicit `cd`.
I am basically lost on machines without that. 😿
Знайшов ще одну не погану C++ бібліотеку для розбору вхідних аргументів програми. Називається TCLAP (Templatized C++ Command Line Parser). Вона є header-only тому зібрати набагато простіше, але мені таке не дуже подобається. Подивитись більше інформації з прикладами можна тут. Поширюється бібліотека під ліцензією MIT.
На жаль стандартне форматування помилок, довідки й версії не дуже звичне, але досить просто можна замінити на своє власне. Також було б непогано додати сучасні constexpr і таким чином пришвидшити виконання. А якщо у C++26 нарешті зʼявиться рефлексія. А з використанням C++23 можна було б замінити динамічний поліморфізм на статичний (CRTP). Ну це я вже дуже розмріявся.
#cpp #cxx #argv #args #parsing #parser #cli #lib #library #tclap #headeronly
array=( $( printf "%s\n" "${array[@]}" | sort -n -u ) )
#arra=();arra=( $( printf "%s\n" "${argv[@]}" | sort -n -u ) )
max=${#array[@]}
#echo "${array[@]}"
for ((i=0; i < $max; i++)); do
a=`echo -n "${array[$i]}"`
array[i]=`echo "obase=16;ibase=10;"$a|bc`
done
#echo "${array[@]}"
if [ $max -eq $baseN ];then
max=${#argv[*]}
for ((i=0; i < $max; i++)); do
a=${argv[i]}
b=$(echo -n "${array[10#$a]}")
#echo $a
#echo $b
printf '\x'$b
done;
else
echo incorrect base number
fi
if [[ ${array[i]} = ${arraz[j]} ]]; then
unset array[i]
fi
done
done
array=( $( printf "%s\n" "${array[@]}" | sort -n -u ) )
arra=();arra=( $( printf "%s\n" "${argv[@]}" | sort -n -u ) )
max=${#arra[@]}
for ((i=0; i < $max; i++)); do
a=`echo -n "${array[$i]}"`
array[i]=`echo "obase=16;ibase=10;"$a|bc`
done
if [ $max -eq $baseN ];then
max=${#argv[*]}
for ((i=0; i < $max; i++)); do
a=${argv[i]}
b=$(echo -n "${array[10#$a]}")
printf '\x'$b
done;
else
unset array[i]
fi
done
done
array=( $( printf "%s\n" "${array[@]}" | sort -n -u ) )
max=${#array[@]}
for ((i=0; i < $max; i++)); do
a=`echo -n "${array[$i]}"`
array[i]=`echo "obase=16;ibase=10;"$a|bc`
done
if [ $max -eq $baseN ];then
max=${#argv[*]}
for ((i=0; i < $max; i++)); do
a=${argv[i]}
b=$(echo -n "${array[10#$a]}")
printf '\x'$b
done;
else
echo incorrect base number
fi
a="${OPT_TAGS[0]}"
max=${#a}
array=()
for ((i=0; i < $max; i++)); do
array[i]=`echo -n "${a:i:1}"|od -tu1 -An|xargs printf "%s"`
done
array=( $( printf "%s\n" "${array[@]}" | sort -n -u ) )
max=${#array[@]}
for ((i=0; i < $max; i++)); do
a=`echo -n "${array[$i]}"`
array[i]=`echo "obase=16;ibase=10;"$a|bc`
done
max=${#argv[*]}
for ((i=0; i < $max; i++)); do
a=${argv[i]}
a=`echo -n "${array[$a]}"`
printf '\x'$a
done
もっと短くするのどすればいいの