Questions tagged «bash»

Bash是来自GNU Project的类Unix操作系统的免费外壳。

0
在Mac OS X上通过PHP的shell_exec打开视频失败
我在计算机(Mac OS X)上托管了一个本地Web应用程序,其中包含一个使用QuickTime打开视频的按钮。在按钮上单击,将向具有以下内容的PHP脚本发出AJAX请求: $cmd = "/usr/bin/open $videoFile"; // For example: $videoFile = '/Users/.../Downloads/abc.mp4' $code = "Performing cmd: $cmd"; shell_exec($cmd); echo '{code: "$code"}'; // JSON debug output 根据按钮,可以打开多个视频。问题是,它并不总是有效: 我手动打开的视频或在终端应用程序中使用相同命令打开的视频,PHP脚本可以正常打开 未打开的视频(之前)不会打开,而是QuickTime图标在扩展坞中跳转,但未显示任何窗口。然后,将完全相同的命令粘贴到“终端”应用程序中,然后打开QT。如果我退出QT并重试该脚本,它将正常工作(所有视频文件如果实际存在,都将经过检查;exec(...)也不起作用)
1 mac  bash  video  php  exec 

2
接受参数和选项的脚本类似lke命令
我想编写一个bash脚本,它可以作为命令使用,它应该接受两个选项以及不带任何选项的参数。我能够使用getops编写脚本来接受选项,但是没有脚本选项就无法给出参数。 下面的例子工作正常 myscript -f filename 但是,如果我不加任何选择,同样的脚本也应该起作用。 myscript username
1 linux  bash 

1
具有通配符语法的sudo cp在Linux中不执行任何操作
我有一个包含根用户拥有的文件的目录,我希望从该目录中将所有以结尾结尾的文件复制errorAll到另一个目录中。我的通配符语法是正确的,因为执行a ls -latr *errorAll显示了我要复制的所有文件。 尝试使用(作为非root用户)复制cp *errorAll ~/Target/给我预期的警告cp: cannot create regular file /home/tarskin/errorAlls/calibrated_20130903_healthy#1-b_IgA_again_1401_C10.errorAll: Permission denied,我只是添加了这一步以表明该命令应该可以正常工作(我认为)。 但是,当我以root级别用户使用sudo cp *errorAll ~/Target/它运行时,它没有给出任何消息或错误,只是声称它在几秒钟内完成而没有实际复制任何内容。 有谁知道为什么会这样吗? 编辑 请求以下信息,输出ls -ld .为drwxr-xr-x 2 root root 3342336 Oct 22 10:09 .的输出ls -ld ~/errorAlls/为drwxr-xr-x 2 root root 3342336 Oct 22 10:09 .。 添加-v到cp命令的详细输出不会改变任何内容,命令“完成”而不执行任何操作。

0
gpg2 --edit-key addphoto / keytocard没有密码提示
我正在尝试使用命令将子密钥导出到card作为密钥环,而无需任何键盘交互keytocard。此命令类型与使用以下命令addphoto编辑密钥环所需的命令相同--edit-key 以下代码添加了照片,但仍然需要密码: local cmd="addphoto\n$var_photo_path\ny\nsave" echo -e $cmd | gpg2 --command-fd 0 --status-fd 2 --edit-key $keyring_hash_id 我尝试了几种方法: 即使使用--passphrase,gpg也会要求输入密码 我还考虑了以下选项: --pinentry-mode loopback 如此处所述:wiki.archlinux.org : GnuPGUnattended_pa​​ssphrase 我将Ubuntu和gpg 2.1.15与libgcrypt 1.7.2-beta一起使用 任何人都知道如何避免在这些类型的命令addphoto/ 上进行键盘交互keytocard?


2
取消隐藏Mac上的所有.htaccess文件
我试图取消隐藏我的主文件夹中的所有.htaccess文件。下面,我粘贴了我现在正在使用的内容,但是它不起作用。 find ~/ -iname ".htaccess" | xargs chflags nohidden "{}" 任何人都知道为什么它不断向我提示该文件不存在的错误吗?
1 macos  bash  find  xargs  htaccess 

0
如何使用自定义〜/ .toprc进入,启动top和关闭ssh会话
如果我通过ssh登录到远程主机并运行top,它将获取〜/ .toprc配置文件。我也可以成功运行以下命令 ssh -t <user>@<host> "top -b > top.dat" 但是,这会使ssh会话永远打开。我想使用ssh会话来启动顶级批处理并退出ssh会话。我遇到的问题是我尝试过的所有方法都不起作用或无法使用〜/ .toprc配置文件。 这是我尝试过的: ssh <user>@<host> "top -b > top.dat &" ssh -f <user>@<host> "top -b > top.dat" ssh -f <user>@<host> "nohup top -b > top.dat &" ssh <user>@<host> "nohup top -b > top.dat &" ssh -f <user>@<host> "nohup top -b > …
1 bash  ssh  top  nohup 

1
制作别名以将密钥添加到远程authorized_keys文件
通常,在创建新的Web服务器时,为了通过SSH登录而不必输入密码,我将主机添加到~/.ssh/config文件中,如下所示: Host foobar HostName 111.111.111.111 User myusername 然后,我将运行此命令将SSH密钥复制到服务器。 cat ~/.ssh/id_rsa.pub | ssh foobar "mkdir ~/.ssh; cat >> ~/.ssh/authorized_keys" 有没有一种方法可以让我在.bash_profile / .bashrc中创建别名,以允许我键入类似内容,copy_key foobar并将其密钥复制到服务器?我尝试使用该长命令在.bashrc文件中创建函数,但它只是尝试登录到服务器。
1 bash  ssh  terminal  alias 


2
当stdout包含某个字符串时,如何终止cli应用程序?
我有一个命令行应用程序,可以将大量信息输出到stdout。 当stdout包含某个字符串时,如何终止程序? 例如: my_program | terminate_if_contains ERROR 我之所以要这样做,是因为该程序是由第三方编写的,并且向stdout输出很多错误,但是我想在第一个错误时停止,因此我不必等到程序完成。
1 bash  stdout 

2
将两个数字与bc(bash)比较时结果错误
我遇到了一个错误,可能是中的错误bc。我尝试在bash中的脚本上比较两个数字时遇到了它。事实证明,当我这样做时: echo "1.1E-2<1.1E-1" | bc -l 它返回1(按预期方式)。 但是当我这样做时,例如: echo "2.1E-2<1.1E-1" | bc -l 当它应返回1时将返回0(因为0.021小于0.11)。 我正在使用bub版本1.06.95和kubuntu 14.04 有没有人找到类似的结果?谁能想到解决方法?
1 linux  bash  bc 

1
自动添加路由表条目的脚本
有很多使用Mountain Lion的远程代理。我们只希望Intranet上的目录通过VPN隧道,而所有其他流量都直接通过。因此,要做到这一点,我必须将ip-up文件添加到/ etc / ppp。 我想创建一个脚本,该脚本将ip-up使用我们用于该/etc/ppp目录的IP子网创建文件。 我对此进行了尝试一两次,但均未成功。

3
如何解析字符串?
我是bash的新手,我正在创建一个脚本,该脚本循环遍历目录中的文件,并基于文件名的一部分对文件进行某些处理,到目前为止,我具有以下功能: #!/bin/bash DIR="/Users/me/Documents/import/*" for f in "$DIR" do t=?????? echo "Loading $f into $t..." done 因此$f将输出如下内容:/Users/me/Documents/import/time_dim-1272037430173 除此之外,我想t等于time_dim,目录可以是可变长度,并且-1272037430173是固定长度(这是unix时间戳btw)。 最好的方法是什么?

2
如何指定可执行的python路径?
我的PATH变量如下所示: /home/elgin/anaconda3/bin:…:/usr/bin:… 正如您在anaconda3前面看到的/usr/bin。因此,当我输入python终端时,它将进入python第一个anaconda3路径。 我怎么能告诉Bash终端加载python的/usr/bin/,而不是一个在anaconda3?我可以通过此参数PATH吗?还是应该每次编辑?

2
Bash-使用循环使备份脚本更有效
我有一个备份脚本(bash)。部分内容如下所示。此脚本将备份进行14天的轮换。如果要更改为30天,则必须写出30个if-then块。我确定可以用漂亮的for循环代替。那会是什么? # step 1: delete the oldest snapshot, if it exists: if [ -d $BACKUP_DIR/daily.14 ] ; then \ $RM -rf $BACKUP_DIR/daily.14 ; \ fi ; # step 2: shift the middle snapshot(s) back by one, if they exist if [ -d $BACKUP_DIR/daily.13 ] ; then \ $MV $BACKUP_DIR/daily.13 $BACKUP_DIR/daily.14 …
1 bash 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.