有没有简单的方法可以将命名参数传递(接收)到Shell脚本? 例如, my_script -p_out '/some/path' -arg_1 '5' 并在内部my_script.sh将其接收为: # I believe this notation does not work, but is there anything close to it? p_out=$ARGUMENTS['p_out'] arg1=$ARGUMENTS['arg_1'] printf "The Argument p_out is %s" "$p_out" printf "The Argument arg_1 is %s" "$arg1" 在Bash或Zsh中可能吗?
像大多数用户一样,我设置了一堆别名来为常用程序提供默认的标志集。例如, alias vim='vim -X' alias grep='grep -E' alias ls='ls -G' 问题是,如果我想使用which上看到我的vim/ grep/ ls/等从,别名的方式来获得: $ which vim vim: aliased to vim -X 这是有用的输出,但是在这种情况下不是我想要的;我知道vim是别名,vim -X但我想知道它 vim的来源。 除了临时取消定义别名(以便我可以which在上面使用)之外,是否有一种简单的方法来which“解开”别名并在其上运行? 编辑:似乎which是一个shell内置的,在不同的shell上具有不同的行为。在Bash中,SiegeX对--skip-alias旗帜的建议起作用了。但是,我在Zsh上。那里是否存在类似的东西?
我想从shell脚本(更具体地说是.zshrc)中检测它是否通过SSH控制。我尝试了HOST变量,但它始终是运行Shell的计算机的名称。我可以访问SSH会话来自的主机名吗?比较两者将解决我的问题。 每次我登录时,都会显示一条消息,说明上次登录时间和主机: Last login: Fri Mar 18 23:07:28 CET 2011 from max on pts/1 Last login: Fri Mar 18 23:11:56 2011 from max 这意味着服务器具有此信息。