Questions tagged «shell-script»

Shell脚本是为操作系统的Shell(或命令行解释器)编写的脚本。


2
允许用户执行shell脚本而不查看其内容?
我想要一个使用gmail帐户发送电子邮件的hg钩子。显然我不希望任何人能够阅读除我或root之外的电子邮件发送脚本,因为它有密码,所以这就是我尝试过的: -rwsr-xr-x 1 james james 58 Feb 18 12:05 incoming.email.sh -rwx--x--x 1 james james 262 Feb 18 12:04 send-incoming-email.sh 哪里 incoming.email.sh 是作为钩子执行的文件: #! /bin/bash /path/to/send-incoming-email.sh 但是,当我尝试以另一个用户身份运行时,我收到错误: /bin/bash: /path/to/send-incoming-email.sh: Permission denied 该 send-incoming-email.sh 当我像我一样跑时文件工作正常。 我正在尝试做什么,或者setuid不会传播到从shell脚本执行的命令? 系统是Ubuntu 10.04.2 LTS。

1
在Raspbian Wheezy中通过.desktop启动Shell脚本
我正在尝试启动OMXplayer并在运行Raspbian Wheezy的RaspberryPi上循环播放一系列视频。我有一个工作的shell脚本启动和播放视频礼貌 http://www.cenolan.com/2013/03/looping-video-playlist-omxplayer-raspberry-pi/ 我把它放在/ home / pi /中,它是可执行的。我在/ usr / share / applications /中创建了一个文件testsh.desktop,我也将其作为可执行文件。该文件包含: [Desktop Entry] Version=1.0 Type=Application Terminal=true StartupNotify=true Name=Play Comment=Plays videos Exec=/home/pi/playvideos.sh Categories=Application; 我也试过将exec设置为: Exec=lxterminal --command "/home/pi/playvideos.sh" 这不起作用,我想我错过了一些明显的东西。

1
使用filename参数运行Python脚本作为MacOS Folder操作
我想在Mac OS中将Python脚本作为文件夹操作运行。 Python脚本将文件的名称和完整路径作为参数。理想情况下,我想右键单击Finder中的文件以启动文件夹操作,将文件名作为第一个参数,将路径作为第二个参数。但我无法弄清楚如何在Automator中加载这两个变量。 这是我能够得到的最远的, 哪里 $1 应该是文件名,和 $2 应该是文件的完整路径。 有没有人知道如何做到这一点?

1
如何从shell脚本中读取文件中的数据
我有两个shell脚本文件test1.sh和test2.sh。我有另一个名为translogs.txt的文件。 现在我需要将test1.sh中两个变量的值复制到translog.txt,并且需要将相同的变量复制到test2.sh中的相应值。 test1.sh #!/bin/sh ONE="000012" TIME="2013-02-19 15:31:06" echo -e "$ONE\n$TIME">translog.txt; translog.txt ONE="000012" TIME="2013-02-19 15:31:06" 但是在test2.sh中,我想要与translog.txt中相同的值到相应的变量,如ONE和TIME应该具有与translog.txt中相同的值 test2.sh #!/bin/sh ONE="000012" TIME="2013-02-19 15:31:06"

1
奇怪的strace和setuid行为:strace下的权限被拒绝,但没有正常运行
这与这个问题有关。 我有一个脚本(fix-permissions.sh)修复了一些文件权限: #! /bin/bash sudo chown -R person:group /path/ sudo chmod -R g+rw /path/ 还有一个小的c程序来运行它,setuid编辑: #include "sys/types.h" #include "unistd.h" int main(){ setuid(geteuid()); return system("/path/fix-permissions.sh"); } 目录: -rwsr-xr-x 1 root root 7228 Feb 19 17:33 fix-permissions -rwx--x--x 1 root root 112 Feb 19 13:38 fix-permissions.sh 如果我这样做,一切似乎都很好,权限确实得到了正确修复: james $ sudo su someone-else …

1
Bash脚本和引用
我正在阅读几本关于bash脚本的书,并努力理解正确的引用和使用IFS。也许有人可以帮我一个涉及带引号的文件名的小例子。从命令行执行此操作,即使它们包含空格,也可以正确打印文件名: set - * for i in "$@"; do echo $i; done 这不起作用,因为它在空格处断开: set - `find . -name "*"` for i in "$@"; do echo $i; done 也不是: IFS=$'\0' set - `find . -name "*" -print0` for i in "$@"; do echo $i; done 使用IFS=$'\n'和的组合也不是-print。为什么这些都失败了? 以下也失败了,但在这种情况下它出错(“bash:意外令牌'do'附近的语法错误”)。为什么? IFS=$'\n' for i in …

1
如何在域列表中grep文字匹配
我有一个充满主机的主机文件,如下所示: 127.0.0.1 home-domain.net 127.0.0.1 here.home-domain.net 127.0.0.1 home-domain.netn 127.0.0.1 home.domain.net 127.0.0.1 home.domain.net.some 在ash shell脚本(BusyBox)中,我只想要文字匹配(es) match=home.domain.net grep " $match$" file 这正确地匹配“home.domain.net”,但也“home-domain.net”我在“$ match $”中使用的空间是将其限制在主机名的开头,而$是行结束。我怎么才能匹配“home.domain.net”的文字?

1
重定向 - 为什么它不能这样工作
我知道运行时有3个流附加到进程,即输入,输出和错误流。 并且重定向执行从左到右。 我打算执行一个命令,将其输出流重定向到一个文件,并将其错误流重定向到同一个文件。 - nofile不存在,text1文件确实存在 head nofile text1 1> output.txt 2> output.txt -- I know this won't work. head nofile text1 1> output.txt 2>&1 -- while this will work, passing the error stream to the output ste q1)为什么? 如果它是“假设以这种方式编写”的问题,那么为什么下面的工作也不能 head nofile text1 2>&1 1> output.txt head nofile text1 2>&1> output.txt …

1
什么=〜在linux中意味着在if条件中用于比较值
实际上tomcat/conf/catalina.properties文件包含行shared.loader=/usr/share/sfit/conf我的意思是值有一些路径。 所以使用shell脚本我们正在更新shared.loader文件中的值。并且还有一个if条件比较它的值 if [ $string1 =~ $string2 ] ; then 这=~是什么意思。 而且我想删除行“shared.loader =”中的值后包含的内容 shared.loader= 请帮帮我们


1
如何使这个简单的ffmpeg命令在Automator中工作?
我无法使一个简单的Automator Shell脚本正常工作。我正在尝试获取ffmpeg命令行,以在拖放到应用程序图标上的文件上运行任务。 这是我所做的: 启动Automator.app 使用服务接收任何应用程序中的文件或文件夹创建新服务 添加了“运行Shell脚本”操作 应用了以下脚本: 将我的工作流另存为服务和应用程序 当我将文件拖放到应用程序时,我得到以下信息: 当我在Automator中运行工作流程时,我得到以下信息:

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

1
在启动时运行shell脚本(Kali Linux)
这似乎是一个非常基本的事情,我甚至已经按照一些教程来获得一个简单的脚本在启动时运行,但无济于事。 以下是我的脚本在根目录中的样子: #! /bin/bash xmodmap ~/.xmodmaprc echo 0 | sudo tee /sys/module/hid_apple/parameters/iso_layout 该脚本通过切换控制和命令键(因为我在macbook上)基本上改变了我的键盘映射。它一直 chmod 'ed为可执行文件,以便在我执行时成功执行 ./keymap_fix.sh 或者我 /root/keymap_fix.sh 我已经按照这些简单的教程 https://www.cyberciti.biz/tips/linux-how-to-run-a-command-when-boots-up.html 和 https://www.cyberciti.biz/faq/linux-execute-cron-job-after-system-reboot/ 所以,我已经将shell脚本复制到了 /etc/init.d 并做到了这一点 update-rc.d keymap_fix.sh defaults 100 我甚至尝试通过添加来以类似的方式设置crontab @reboot /root/keymap_fix.sh ,但没有任何作品!每当我重新启动时,我的键盘映射都保持不变。 :/ 如果有人能帮到我,谢天谢地!

0
Pashua Mac不允许我在输入框上对齐图像。我尝试了各种选择但无济于事
我最近开始玩Pashua,但似乎给我带来了一些麻烦。目前我正在将它用于shell脚本(Bash),并编辑了示例文件以接近我的愿望结果,但还没有到达那里。 我注意到一些事情。 Pashua有一个名为“Pashua.sh”的文件,我假设它试图找到应用程序以及bundle资源。现在我想知道,这是一个强制性文件,意思是: 我不能只在我自己的shell脚本中调用Pashua应用程序吗?即使我知道它永远不会改变的确切目的地。 我真的需要这个Pashua.sh文件吗? 我的最后一个问题是将图像重新定位到左上角。它只是不起作用,因为输入框位于顶部。我也放置了图像的绝对位置,但它不起作用。 #!/bin/bash -x MYDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" # Include pashua.sh to be able to use the 2 functions defined in that file source "$MYDIR/pashua.sh" # Define what the dialog should be like # Take a look at Pashua's Readme file …

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.