Tag: bash

如何找到特定应用程序的窗口并将它们放入网格中?

我正在尝试编写一个脚本来识别所有打开的镀铬窗口,并将它们移动到大屏幕上的网格布局中 我不知道如何找出最佳分辨率是什么,所以我要手动将它们添加到一个数组中,这样如果有1个镀铬窗口可用,那么最大化,如果有2个镀铬窗口可用,那么就转到一个数组大小为了那个原因? 目前我可以移动屏幕上的每个窗口(这样做时会破坏我的显示)但我可以看到如何移动只有铬屏幕? 下面的脚本是我的一些想法,但请指出正确的方向,因为脚本不起作用 #!/bin/bash #Chrome window crontroller # Monitor 1920 X 1800 # Choose array for number of screens available # Different screen positions G=0 win1_X=5; win1_Y=24; win1_W=639; win1_H=499; win2_X=642; win2_Y=24; win2_W=639; win2_H=499; win3_X=1280; win3_Y=24; win3_W=639; win3_H=499; win4_X=5; win4_Y=552; win4_W=639; win4_H=499; ChromesAvailable() { CA=$(wmctrl -lx | grep Chromium | wc -l) } GetNumOfChrome() { […]

从多行文件复制特定文本,并使用终端自动将其粘贴到另一个文件中

我的问题是关于文本处理: 在列表中,我有以下格式的IP地址和计算机名称: IP address: 192.168.1.25 Computer name: computer7office IP address: 192.168.1.69 Computer name: computer22office IP address: 192.168.1.44 Computer name: computer12personal 我需要的输出: This computer ip address is xxx.xxx.x.xx and is under the name zzzzzzzzzz 如何使用命令行自动将列表中的IP和名称复制到输出文件? 你能否解释一下你的命令,因为当我必须复制/粘贴我不理解的东西时,我很遗憾。

如果shell脚本中的/ Else在Ubuntu for Windows中引发错误

这是一个简单的shell脚本示例: #!/usr/bin/env bash if [ 1 == 1 ]; then echo “Something” fi 当我跑这个 sh ./test.sh 我明白了: ./test.sh: 4: ./test.sh: Syntax error: “fi” unexpected (expecting “then”) 它似乎没有认出我在那里的’那么’。 任何线索为什么? 这是部分重要的Ubuntu for Windows。 一般运行shell脚本不是问题,它似乎与if / else斗争。

检测到I / O时运行脚本

我有蓝牙鼠标xinput设置脚本,只要我连接鼠标就可以运行。 目前我只是将短键别名为bm文件执行的’bm’,但我想知道是否有自动方式在检测到鼠标连接时执行bash文件或别名命令。 预先感谢! ubuntu 16.10

“太多的参数”检查条件并执行某些操作,以防它不是真的?

我编辑了我的sudoers文件,以允许我的非root用户运行sudo命令而不提示输入密码。 在vim ,如何创建一个检查此条件是否为真的函数,如果不是,则提示用户是否希望脚本编辑并保存sudoers文件以使此条件成立? 如果条件为真,则继续使用其余的脚本。 如果condition不成立,则脚本静默编辑/添加行: %sudo ALL=(ALL:ALL) NOPASSWD: ALL在sudoers文件中的%sudo ALL=(ALL:ALL) NOPASSWD: ALL ,保存然后继续使用脚本的下一部分。 所以我开始使用代码编写函数: … #lines 1-5 passChk() { passPut=”%sudo ALL=(ALL:ALL) NOPASSWD:ALL”; passRd=sudo grep -is “$passPut” –file=/etc/sudoers; if [ $passRd == $passPut ]; then #if sudoers already contains line from $passPut, #exit passChk and proceed to pkgFetch. pgkFetch; else echo “You will be prompted for […]

Zenity进度条和输出

我写了这个小脚本: response=$(process …) | zenity –progress –pulsate echo $response 我希望阅读过程的响应,无论它是什么,并在同时显示一个脉动的进度条。 问题是我最后没有读到任何回复。 我认为因为前一个进程的所有输出都被发送到zenity。

如何使选项卡完成为目录符号链接添加斜杠?

我的~/Documents目录是一个符号链接: nathan@nathan-desktop:~$ stat Documents File: Documents -> /mnt/nathan/extended/Documents 如果我想要进入目录,我可以输入: c d space D o c tab …和标签完成将按预期将cd Doc附加到cd Doc的末尾。 但是,即使符号链接指向目录,它也不会附加尾随/ 。 有没有办法让Bash这样做?

bash – 使用lftp镜像远程文件夹中的特定文件

我想通过ftp从远程目录镜像文件。 以下代码有效: lftp -c ‘open ipaddress; user myusername mypassword; mirror -e /files/ /home/user/files/retrieve/; quit’ 但是,我希望能够指定我需要检索的文件的年龄和大小,如mtime -2 and -size +10M 我在哪里添加这些值?

如何使用packages.ubuntu.com像apt-file搜索不同的版本?

我想从命令行使用http://packages.ubuntu.com/的强大function,类似于apt-file search -i工作,以查找提供包含特定模式的文件的包。 我不能使用apt-file因为我不仅需要搜索我正在运行的版本(14.04),还要搜索14.10和15.04。 我如何获得所有提供包含com.canonical.Unity glib-2.0模式的com.canonical.Unity但是如果我从命令行运行14.04则为14.10?

如何在以root权限启动的脚本中以非root用户身份运行命令?

问题 在bash脚本中,我正在使用命令… sudo -u node bash ..从root用户切换到非sudo用户,这是失败的。 上下文 我正在为Vagrant编写一个provision.sh脚本,用于设置运行Ubuntu 16.04.3的服务器,其中包含使用Meteor 1.6交付应用程序所需的所有软件包。 一个必需步骤是将nvm作为非root用户安装。 安装nvm后,您需要注销并重新登录才能激活nvm 。 因此,我创建了一个名为meteor的非sudo用户,并希望在下载并安装nvm时切换到该nvm 。 随后,我想切换回root并立即以meteor身份登录,以便开始使用nvm来安装Node.js. 你会在下面找到一个评论很多的剧本。 每次我调用vagrant reload –provision时,Vagrant都会运行此脚本。 我应该使用什么命令而不是sudo -u node bash ? echo “# whoami” && whoami && echo “^^^^ root expected” echo “As root, create non-sudo user meteor:” pass=$(perl -e ‘print crypt($ARGV[0], “password”)’ $password) useradd -m -p $pass meteor echo […]