- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有以下 bash 脚本 (myscript.sh):
#!/bin/bash
$(echo $0)
现在:在采购 myscript.sh 之前,$SHLVL 是 2。采购之后,是 3。为什么?命令评估不应该在 echo 之后退出吗?
谢谢!
最佳答案
当您在 bash
中获取脚本时,$0
扩展为 bash
(或者至少是 shell bash 的名称
开始于)。所以 $(echo $0)
首先扩展为 $(echo bash)
,其计算结果为 bash
,然后将其标识为命令运行,因此启动了一个新的 shell 实例。您可以通过运行观察嵌套
echo foo; source myscript.sh; echo bar
首先您会看到字符串 foo
被打印出来,然后您会在新的 shell 中看到一个提示符。输入 exit
退出它,然后您将看到 bar
打印出来,因为您的原始命令列表终于完成了。
关于linux - 在 bash 脚本中评估命令导致 $SHLVL 增加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46717086/
我正在学习 shell 脚本并坚持使用这个小的实验性 shell 脚本: #!/usr/bin/env bash A=1 (A=2;echo "A is $A in $SHLVL") echo "A
我最近运行了一个在其中运行“cmd”的第 3 方脚本,从而增加了我的 cmd 窗口的嵌套深度(使我的历史记录和 DOSKey 宏在此过程中不可用)。所以我想知道是否有等效的 $SHLVL 或其他方法来
有人可以解释以下行为吗? $ echo $SHLVL 1 $ zsh -c 'echo $SHLVL' 2 $ zsh -c '(echo $SHLVL)' 1 我不明白最后的结果。 zsh 是否为
我有以下 bash 脚本 (myscript.sh): #!/bin/bash $(echo $0) 现在:在采购 myscript.sh 之前,$SHLVL 是 2。采购之后,是 3。为什么?命令评
我对这两者感到困惑。 While the $BASH_SUBSHELL internal variable indicates the nesting level of a subshell, the
我是一名优秀的程序员,十分优秀!