相关疑难解决方法(0)

如何在别名命令上使用`which`?

像大多数用户一样,我设置了一堆别名来为常用程序提供一组默认标志。例如,

alias vim='vim -X'
alias grep='grep -E'
alias ls='ls -G'
Run Code Online (Sandbox Code Playgroud)

问题是,如果我想用来which查看我的vim/ grep/ ls/etc 来自哪里,别名会妨碍:

$ which vim
vim: aliased to vim -X
Run Code Online (Sandbox Code Playgroud)

这是有用的输出,但不是我在这种情况下要寻找的;我知道vim别名为,vim -X但我想知道 vim来自哪里。

除了暂时取消定义别名以便我可以使用which它之外,是否有一种简单的方法可以which“解开”别名并在其上运行?

编辑:这似乎which是一个 shell-builtin,在不同的 shell 中具有不同的行为。在 Bash 中,SiegeX 对--skip-alias标志的建议有效;但是,我在 Zsh 上。那里是否存在类似的东西?

shell zsh alias which

90
推荐指数
3
解决办法
3万
查看次数

为什么使用 && 比 if...fi 快 75 倍以及如何使代码更清晰

我有以下工作代码:

largest_prime=1
for number_under_test in {1..100}
do
  is_prime=true
  factors=''
  for ((divider = 2; divider < number_under_test-1; divider++));
  do
    remainder=$(($number_under_test % $divider))
    [ $remainder == 0 ] && [ is_prime ] && is_prime=false && factors+=$divider' '
  done
  [ $is_prime == true ] && echo "${number_under_test} is prime!" || echo "${number_under_test} is NOT prime (factors= $factors)"  [ $is_prime == true ] && largest_prime=$number_under_test
done
printf "\nLargest Prime= $largest_prime\n"
Run Code Online (Sandbox Code Playgroud)

这段代码运行得很快是 0.194 秒。然而,我发现它&& is_prime= false有点难以阅读,它看起来(在未经训练的眼睛看来)好像是在测试而不是被设置,这就是它的作用。所以我尝试将其更改&&为 anif...then并且这有效 - 但在 …

shell shell-script

38
推荐指数
2
解决办法
4624
查看次数

标签 统计

shell ×2

alias ×1

shell-script ×1

which ×1

zsh ×1