我想知道为什么下面显示一个空对话框:
testvar="hello" & zenity --info --text "${testvar}"
虽然这有效:
testvar="hello"; zenity --info --text "${testvar}"
我想知道为什么下面显示一个空对话框:
testvar="hello" & zenity --info --text "${testvar}"
虽然这有效:
testvar="hello"; zenity --info --text "${testvar}"
我使用 Arch Linux。
我将 SSDM 用作显示管理器,但我已将其禁用:
sudo systemctl disable sddm
我已将代码放入/etc/profile
,$HOME/.bash_profile
并$HOME/.bashrc
在获取这些文件时回显。
我$HOME/.bash_profile
正在采购$HOME/.bashrc
(就是这样,我只是添加了代码以在发生这种情况时回显):
if [[ -f ~/.bashrc ]]; then
echo "$HOME/.bash_profile is sourcing $HOME/.bashrc"
. ~/.bashrc
fi
我在我的中导出以下变量$HOME/.bashrc
:
export R_LIBS_USER='MY_VALUE'
我启动我的电脑。
它显示一个提示(在 TUI/命令行中),要求输入用户名和密码。
我把它们放进去,然后按回车键。
/etc/profile
是来源。
$HOME/.bash_profile
是来源。后者来源$HOME/.bashrc
。这意味着R_LIBS_USER
正在导出。
我被重定向到一个提示。
我愿意:
sudo systemctl start ssdm
由于 SSDM 是该 shell 的子项,因此它应该继承R_LIBS_USER
.
SSDM 打开,我开始 Wayland KDE 会话。
由于此会话是 SSDM 的子项,因此它应该继承R_LIBS_USER
.
我从 KDE 打开 RStudio。
但是R_LIBS_USER
还是默认值,不是我定义的那个$HOME/.bashrc
。
我用 R 显示变量的值:
Sys.getenv("R_LIBS_USER")
我的推理在哪里失败了?
我可以通过管道将 echo 传送到 bc。
但是我不能对“printf”做同样的事情:它给出了语法错误。
❯ echo "100-5" | bc
95
❯ printf "%s" "100-5" | bc
(standard_in) 1: syntax error
如果运算符周围有空格,则test
返回表达式的正确值。
但是如果没有空格,它不会抛出任何语法错误并且总是返回 true。
$ test "A" == "A"; echo $?
0 #<-- OK, 0 stands for true
$ test "A" == "B"; echo $?
1 #<-- OK, 1 stands for false
$ test "A"=="A"; echo $?
0 #<-- OK, 0 stands for true
$ test "A"=="B"; echo $?
0 #<-- ??? should either return 1 (false), or throw a syntax error (exit code > 1)