lsh

来自「Rsync 3.0.5 source code」· 代码 · 共 36 行

TXT
36
字号
#!/bin/sh# This script can be used as a "remote shell" command that is only# capable of pretending to connect to "localhost".  This is useful# for testing or for running a local copy where the sender and the# receiver needs to use different options (e.g. --fake-super).  If# we get a -l USER option, we try to use "sudo -u USER" to run the# command.user=''prefix=''do_cd=y # Default path is user's home dir, just like ssh.while : ; do    case "$1" in    -l) user="$2"; shift; shift ;;    -l*) user=`echo $1 | sed 's/^-l//'`; shift ;;    --no-cd) do_cd=n; shift ;;    -*) shift ;;    localhost) shift; break ;;    *) echo "lsh: unable to connect to host $1" 1>&2; exit 1 ;;    esacdoneif [ "$user" ]; then    prefix="sudo -H -u $user"    if [ $do_cd = y ]; then	home=`perl -e "print((getpwnam("$user"))[7])"`	# Yeah, this may fail, but attempts to get sudo to cd are harder.	cd $home    fielif [ $do_cd = y ]; then    cdfieval $prefix "${@}"

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?