为什么运行echo $$inbash返回一个数字7190,而运行echo $只返回一个$?
编辑从下面的评论中,我写了一个令人困惑/误导性的介绍,所以我正在重写它。
我有一个名为“锁屏计时器”的 bash 脚本,可以在桌面上单击它。30 分钟后,它会锁定屏幕,用户必须输入密码才能解锁屏幕。但是,如果用户改变主意,或者他们想要重置计时器,他们应该能够再次单击桌面快捷方式,并且它应该会终止之前正在运行的正在休眠和倒计时的作业。
到目前为止,我已经做了一些试验和错误,但遇到了障碍。
相关的代码片段是:
pgrep tv-timer > ~/tv-timer.log
PID=$$ # Current Process ID
Run Code Online (Sandbox Code Playgroud)
使用cat ~/tv-timer.log:
16382
20711
Run Code Online (Sandbox Code Playgroud)
其中一个等于上面的“$PID”,但另一个是我想使用的以前运行的副本kill #####。
找出哪个 <> "$PID" 并杀死它的最佳方法是什么?
第一次运行脚本时,只有一个条目等于“$PID”,我不想杀死它。
谢谢你的帮助!
所提出的重复(在的Sametime防止重复脚本运行)是内一个问题家长和儿童的过程。接受的答案冗长而复杂,涉及包装脚本和/或多行代码。
这里寻求的解决方案是一行新代码!
实际上,这里的被接受的答案是基于重复的op尝试,不起作用!
我正在设置的计算机有三个分区,一个用于 Windows 10,一个用于 Linux,一个用于它们之间共享的文件和程序。有没有办法在第三个分区(如 Python、PyCharm、MATLAB 等)上安装程序以在两个操作系统上运行,还是我必须在每个操作系统上安装他们自己的 Python、C++ 版本等?第三个分区是仅限于共享文件还是可以用于共享 IDE、应用程序、编译器和解释器?
我有一个名为lock-screen-timer的 bash 脚本,它调用yad挂载一个 GUI 对话框。在 Windows 10 和适用于 Linux 的 Windows 子系统 (WSL) 下,我可以从 bash 提示符运行它(注意必须先安装 VcXsrv)。我不知道如何在 Windows 10 中创建一个有效的桌面快捷方式。我可以在 Windows 10 桌面上创建快捷方式 OK...
...当我点击它时它不会运行。我看了很多网站都没有运气。
我有一个 bash 脚本,它在设定的时间后锁定屏幕(应用程序将在 Ubuntu 的设定时间后锁定屏幕)。我想在 Ubuntu 的系统托盘/应用程序指示器栏中显示剩余时间。
bash ×4
scripts ×2
command-line ×1
echo ×1
gui ×1
kubuntu ×1
partitioning ×1
process ×1
programming ×1
python ×1
shortcuts ×1
system-tray ×1
unity ×1
windows-subsystem-for-linux ×1
yad ×1