gpt4 book ai didi

linux - 使用 Linux 终端执行条件、创建文件、删除文件和其他操作

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:08:35 25 4
gpt4 key购买 nike

介绍

我不久前尝试过 Fedora,我喜欢左上角的工作方式,所以,当我回到 Ubuntu 时,我更改了它以使其以相同的方式运行。

然后我写了(并且能够让它现在工作)一个小脚本来关闭右上角的事件窗口。这很危险,所以我决定更进一步,用几个“If 语句”来实现它。所以,如果右上角在 X 秒内被触摸两次,它不会关闭窗口。我意识到它被触摸了,因为我还将它配置为按下,并且在“系统设置”>“鼠标和触摸板”中将“按下控制键时显示指针的位置”设置为 true。

代码

CompizConfig>Commands>Commands>Command line 0(和 CompizConfig>Commands>Edge Bindings>Run command 0 is "TopRight")的代码需要写在 1 行中,工作代码是这样的:

xte 'key Control_L'; if [ -f /tmp/fcont ]; then rm -f -r /tmp/fcont; else touch /tmp/fcont; sleep 1; if [ -f /tmp/fcont ]; then xte 'keydown Alt_L' 'key F4' 'keyup Alt_L'; rm -f -r /tmp/fcont; fi fi

然后我扩展它并给它注释以使其更具可读性:

xte 'key Control_L';    #Set to "Show position of pointer"
if [ -f ~/.fcont ]; #If file exists
then
rm -f -r ~/.fcont #Delete it

else
touch ~/.fcont; #Else, create it
sleep 1;
#If it STILL exists (it doesn't if this is executed twice in X seconds)
if [ -f ~/.fcont ];
then
xte 'keydown Alt_L' 'key F4' 'keyup Alt_L'; #Close active window
rm -f -r ~/.fcont; #Remove the file
fi;
fi

真题

因此代码可以完美运行。但考虑到性能,创建和删除文件可能不够快。然后,您能推荐一种使用变量而不是文件来执行此操作的方法吗?(如果您能实现它,那就太好了!)。认为它与操作系统无关,我正在寻找 php 中 $_SESSION['name'] 的行为(如果存在)。显然,每次执行都在不同的进程中。

此外,如有任何其他关于此的反馈,我们将不胜感激。喜欢就用吧。

额外信息

Xte

CompizConfig

最佳答案

首先,何必呢?你说“可能不够快”,但实际上,是不是不够快?运行脚本时会观察到什么? “足够快”是一个相对术语,我敢打赌这一切都会在不到 3 秒的时间内发生。

无论如何,回答你问的问题......

看起来您正在(可能)并行多次运行同一个脚本?如果是这种情况,那么变量将无济于事,因为它们不在进程之间共享。您可以使用命名管道或共享内存或发出信号(杀死)脚本的现有实例来设置一些可怕的复杂系统,但您所采用的方式似乎既简单又安全。

但有一件事:您可能想考虑将文件放在/tmp 中:/tmp 中的所有文件仅存储在 RAM 中(在许多 Linux 发行版中),因此读写它们可能会更快。不过,实际上,所有磁盘都缓存在 RAM 中,因此可能没有什么区别。如果 ~/是网盘,那么 RAM 缓存通常会在 20 秒左右后过期,在这种情况下使用本地文件肯定是一个胜利。

关于linux - 使用 Linux 终端执行条件、创建文件、删除文件和其他操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9917362/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com