Articles of shell

如何通过命令行/ shell脚本从etc / wpa_supplicant / wpa_supplicant.conf中删除networkingconfiguration文件

我有多个无线networkingssid保存在我的etc / wpa_supplicant / wpa_supplicant.conf中,如下所示,我们可以从这个wpa_supplicant.conf中删除一个特定的networking 例如:在下面的networking中,可以通过shell脚本删除networkingmyssid1,然后我可以通过node.js服务器执行 network={ ssid="myssid1" scan_ssid=0 proto=WPA key_mgmt=WPA-PSK psk=5f55a9b869e9ab6d03839cae23c7243accc0ac0a12079d358328bf73ad2e0ebe } network={ ssid="myssid2" scan_ssid=0 proto=WPA key_mgmt=WPA-PSK psk=d89660510d06bbf7691f5296daae36872d697a88876c53db7de91aa85df4f68b } network={ ssid="myssid3" scan_ssid=0 proto=WPA key_mgmt=WPA-PSK psk=d635b33481a13b28a67e8964f58343cb19bc8c85c67cc56ee9bfe0c302914a5f }

传递关联数组作为参数与Bash

将关联数组作为parameter passing给函数以避免重复迭代大量关联数组的最佳方法是什么? 这样我可以给我的select打印任何数组的function。 这是我有: # Snippet declare -A weapons=( ['Straight Sword']=75 ['Tainted Dagger']=54 ['Imperial Sword']=90 ['Edged Shuriken']=25 ) print_weapons() { for i in "${!weapons[@]}"; do printf "%s\t%d\n" "$i" "${weapons[$i]}" done } print_weapons

如何通过命令将parameter passing给linux

我需要稍后运行一个mail.php文件,而不是让用户在提交register.php时等待validation电子邮件发送。 所以我select使用at命令在1分钟后在命令行中运行mail.php( 在register.php中调用 ): 但是我只能在at命令的交互模式下发送参数给那个php文件。 at now + 1 minute at> php mail.php {email} # {email} is the argument I want to pass 因为我想这是自动的,所以我需要使用运行一个shell脚本: at -f mail.sh 但我找不到通过{email}参数的正确方法, 我试图在壳牌中设定一个可变的环境,但也徒劳无功: 在register.php文件中,我写道: shell_exec('export email=foo@bar.com'); shell_exec('at -f mail.sh now + 1 minute'); 在mail.sh中 ,我写道: #! /bin/bash php mail.php $email

权限问题,无法以root身份运行脚本

我正在运行一个shell脚本(Script.sh),它本身正在调用其他shell脚本(Script2.sh,Script3.sh等)。 我以root用户身份login,并赋予所有脚本执行权限。 但是当我执行“ls -l”时,脚本仍然没有在文件属性列上显示执行权限。 “Script.sh”按以下语法运行: root@freescale $ sh Script.sh 但是这个脚本不能执行被它调用的其他脚本(Script2.sh,Script3.sh)。 错误报告为“权限被拒绝” 我已经通过chmod命令授予了执行权限,但是这两个权限都没有更改,脚本(Script2.sh,Script3.sh ..)也没有执行。 我希望这个错误是由于Script2.sh在Script3.sh中被调用的原因: ./Script2.sh ./Script3.sh 如果我把它写成:sh Script2.sh它执行但不能执行在Script2.sh中调用的其他脚本,并报告同样的错误为“权限被拒绝”

合并第一列的结果然后总结第二列以列出第一列中每个条目的总计

我是Bash的新手,所以请在这里忍受我。 我有一个由另一个软件(我无法控制)转储的文本文件列出每个用户访问某些资源的次数,如下所示: 吉姆109 鲍勃94 约翰92 肖恩91 马克85 理查德84 吉姆79 鲍勃70 约翰67 肖恩62 马克59 理查德58 吉姆57 鲍勃55 约翰49 肖恩48 马克46 。 。 。 我的目标是获得这样的输出。 吉姆[吉姆总计] 鲍勃[鲍勃总数] 约翰[约翰的总数] 等等。 每次我在软件中运行查询时,名称都会改变,所以静态search每个名称,然后通过wc进行pipe道操作并没有帮助。

创build一个shell脚本在Linux上运行Java程序

我已经创build了一个java程序来同步两个目录的内容。 程序将两个目录的位置作为参数同步它们的收益,同步信息存储在每个目录内的JSON格式的文件中。 我有一个引用的库json-simple-1.1.1.jar 我在eclipse上运行这个窗口,一切工作正常。 我想创build一个shell脚本,以便我可以在Linuxterminal上运行这个脚本,方法是inputsync dir1 dir2 ,其中sync是我的java程序, dir1和dir2是从当前目录同步目录的path。 我对shell脚本和Linux很陌生,不确定这样做是否容易,或者是否需要我一整天。

android中的shell脚本给出了[:not found

我有这个脚本在我的Linux机器上工作 #!/bin/sh c=1 if [ $c == 1 ] then echo c is 1 else echo c is 0 fi 但是当我在android中使用这个如下: #!/system/bin/sh c=1 if [ $c == 1 ] then echo c is 1 else echo c is 0 fi 它给出了一个错误,如: [: not found 编辑 有没有其他的逻辑来检查$c的值,无论是1还是0? Android的shell有问题,如果是的话有没有其他办法来检查c的值?

gdb如何从脚本执行目标程序

我想用gdbdebugging一个程序。 但是我通过一个脚本来调用这个程序。 我怎样才能使用gdb? 脚本很长,我不能直接使用gdb的命令行参数来调用程序。 此外,脚本启动时创build的进程是短暂的,所以不能将gdb附加到进程。 我想要做的是类似的,用该程序启动gdb,添加我的断点,然后执行脚本(仅供参考 – 它也需要参数),然后当它打断点时做任何我想要的。 我查看了gdb中的shell选项,但是如果我没有错误,会产生一个新的shell,并在完成时返回到gdb。 这不是我想要的。 请让我知道如果有更好的方法。

Git安装脚本如何inputshell命令

这是更多的git相关的问题比openshift。 当我使用git将文件推送到git服务器时,我发现我的perl index.cgi文件的文件权限在openshift repo中被更改为700。 因此,每次我推送时,我都必须使用sshlogin到服务器,并在$OPENSHIFT_REPO_DIR执行chmod a+x index.cgi将其更改为755。 我读的git文件中可以添加一个钩子,我尝试使用以下命令更新hooks目录中的post update脚本 exec chmod a+x $OPENSHIFT_DATA_DIR/index.cgi 但是,这似乎并没有奏效。 你能告诉我我做错了什么吗? 我如何确保每次推送文件时都不需要更改chmod ? 如何通过git安装脚本执行shell命令(我不知道什么是安装脚本,我认为这意味着挂钩) 基于下面的build议,我想我需要将钩子添加到服务器,所以我试了一下,但我得到了一个错误 $ git add .git/hooks/post-update error: Invalid path '.git/hooks/post-update' error: unable to add .git/hooks/post-update to index 所以我尝试了一些使用动作钩子的选项,在当地的.openshift / action_hooks目录下放置一个“start”。 有一个试图使用的命令是exec chmod a+x register.cgi ,甚至是chmod a+x register.cgi 没太多的运气。 任何input。 我会把这个作为一个单独的q反对行动钩子。

在linux中如何join2个文件

我有2个文件file_A和file_B。 文件file_A包含文件名,然后在空格之后代码行。 这个代码行可以有任意types的字符说blanks,:等等。它看起来像这样。 请注意,文件中的代码行没有被()包围。 这只是为了说明的目的。 bash $ cat file_A file_name1 (code line a) file_name1 (code line b) file_name2 (code line c) file_name2 (code line d) file_name2 (code line e) 文件file_B在file_A中包含file_name和频率 bash $ cat file_B file_name1 2 file_name2 3 我想输出为:(频率,文件名,code_line) 2 file_name1 (code line a) 2 file_name1 (code line b) 3 file_name2 (code line c) 3 […]