Questions tagged «scripting»

脚本编写是一种编程形式,通常具有低形式化,松散键入和不需要显式编译的特征。有许多脚本语言,并且这些脚本语言可用于各种场景-命令行应用程序,GUI,服务器端应用程序,扩展模块。

10
在迭代字典时如何从字典中删除项目?
在Python上进行迭代时从字典中删除项目是否合法? 例如: for k, v in mydict.iteritems(): if k == val: del mydict[k] 这个想法是从字典中删除不满足特定条件的元素,而不是创建一个新字典,该字典是被迭代的字典的子集。 这是一个好的解决方案吗?有没有更优雅/更有效的方法?

10
对目录中的所有文件执行命令
有人可以提供代码来执行以下操作:假设有一个文件目录,所有文件都需要通过程序运行。程序将结果输出到标准输出。我需要一个脚本,该脚本将进入目录,对每个文件执行命令,并将输出合并为一个大输出文件。 例如,要在1个文件上运行命令: $ cmd [option] [filename] > results.out
289 bash  scripting 


13
cron如何模拟执行脚本的环境?
我通常在cron如何执行脚本方面遇到一些问题,因为它们通常没有我的环境设置。有没有一种方法可以像cron一样调用bash(?),因此我可以在安装脚本之前对其进行测试?
253 bash  scripting  cron 

11
如何直接ssh到特定目录?
我经常必须登录到几台服务器之一,并转到那些机器上的几目录之一。目前,我正在执行以下操作: 本地主机〜] $ ssh somehost 欢迎来到主持人! somehost〜] $ cd / some / directory / somewhere / named / Foo somehost Foo] $ 我有一些脚本可以确定我需要进入哪个主机和哪个目录,但是我无法找出执行此操作的方法: 本地主机〜] $ go_to_dir Foo 欢迎来到主持人! somehost Foo] $ 有没有简单,聪明或任何方法可以做到这一点?
248 bash  shell  scripting  ssh 


14
从bash模拟“分组依据”的最佳方法?
假设您有一个包含IP地址的文件,每行一个地址: 10.0.10.1 10.0.10.1 10.0.10.3 10.0.10.2 10.0.10.1 您需要一个Shell脚本,该脚本针对每个IP地址计算它在文件中出现的次数。对于先前的输入,您需要以下输出: 10.0.10.1 3 10.0.10.2 1 10.0.10.3 1 一种方法是: cat ip_addresses |uniq |while read ip do echo -n $ip" " grep -c $ip ip_addresses done 但是,这实际上远非有效。 您如何使用bash更有效地解决此问题? (要添加的一件事:我知道可以通过perl或awk解决它,我对bash而不是那些语言的更好解决方案感兴趣。) 附加信息: 假设源文件为5GB,运行该算法的计算机为4GB。因此,排序不是一种有效的解决方案,读取文件也不止一次。 我喜欢类似散列表的解决方案-任何人都可以对该解决方案进行改进吗? 其他信息#2: 有人问为什么在例如perl中更容易用bash进行操作呢?原因是在我必须执行此操作的机器上,我无法使用perl。这是一台定制的Linux机器,没有我惯用的大多数工具。我认为这是一个有趣的问题。 因此,请不要怪这个问题,如果您不喜欢它,那就忽略它。:-)
231 bash  scripting 

8
如果进程死了,我该如何编写bash脚本来重新启动进程?
我有一个python脚本,它将检查队列并对每个项目执行操作: # checkqueue.py while True: check_queue() do_something() 我如何编写一个bash脚本来检查它是否正在运行,如果没有运行,请启动它。大致如下的伪代码(或者也许应该做类似的事情ps | grep?): # keepalivescript.sh if processidfile exists: if processid is running: exit, all ok run checkqueue.py write processid to processidfile 我会从crontab调用它: # crontab */5 * * * * /path/to/keepalivescript.sh
226 bash  scripting  cron 

3
bash脚本:如果参数等于此字符串,则定义一个类似于此字符串的变量
我正在做一些bash脚本,现在我得到了一个变量调用source和一个数组samples,如下所示: source='country' samples=(US Canada Mexico...) 当我想扩展源的数量(每个源都有自己的样本)时,我尝试添加一些参数来执行此操作。我尝试了这个: source="" samples=("") if [ $1="country" ]; then source="country" samples="US Canada Mexico..." else echo "try again" fi 但是当我运行脚本时,source countries.sh country它不起作用。我究竟做错了什么?

12
Python递归文件夹读取
我有C ++ / Obj-C背景,而我刚发现Python(大约写了一个小时)。我正在编写一个脚本,以递归方式读取文件夹结构中文本文件的内容。 我的问题是我编写的代码仅适用于一个文件夹较深的地方。我可以看到为什么在代码中(请参阅参考资料#hardcoded path),我只是不知道如何继续使用Python,因为我的经验仅仅是全新的。 Python代码: import os import sys rootdir = sys.argv[1] for root, subFolders, files in os.walk(rootdir): for folder in subFolders: outfileName = rootdir + "/" + folder + "/py-outfile.txt" # hardcoded path folderOut = open( outfileName, 'w' ) print "outfileName is " + outfileName for file …

19
如何在Shell脚本中解析符号链接
给定绝对路径或相对路径(在类Unix系统中),我想在解决所有中间符号链接后确定目标的完整路径。同时解决〜username表示法的奖励点。 如果目标是目录,则可以将chdir()进入目录,然后调用getcwd(),但我真的很想从shell脚本中执行此操作,而不是编写C帮助程序。不幸的是,shell倾向于尝试向用户隐藏符号链接的存在(在OS X上是bash): $ ls -ld foo bar drwxr-xr-x 2 greg greg 68 Aug 11 22:36 bar lrwxr-xr-x 1 greg greg 3 Aug 11 22:36 foo -> bar $ cd foo $ pwd /Users/greg/tmp/foo $ 我想要的是一个resolve()函数,以便在上述示例中的tmp目录中执行时,resolve(“ foo”)==“ / Users / greg / tmp / bar”。
220 bash  shell  scripting  symlink 

14
如何使用命令行工具为Mac OS X创建美观的DMG?
我需要为Mac应用程序创建一个不错的安装程序。我希望它是磁盘映像(DMG),具有预定义的大小,布局和背景图像。 我需要在脚本中以编程方式进行此操作,以将其集成到现有的构建系统中(实际上更多的是打包系统,因为它仅创建安装程序。构建是单独完成的)。 我已经使用“ hdiutil”完成了DMG的创建,但我还没有发现如何进行图标布局和指定背景位图。

4
如何从字符串执行任意本机命令?
我可以在以下情况下表达我的需要:编写一个函数,该函数接受要作为本机命令运行的字符串。 这个想法不是太牵强:如果您正在与公司中其他地方的其他命令行实用程序交互,这些实用程序可以为您提供逐字运行命令。由于您不控制命令,因此需要接受任何有效命令作为input。这些是我一直无法轻松克服的主要问题: 该命令可能会执行位于路径中带有空格的程序: $command = '"C:\Program Files\TheProg\Runit.exe" Hello'; 该命令的参数中可能带有空格: $command = 'echo "hello world!"'; 该命令可能同时具有单刻度和双刻度: $command = "echo `"it`'s`""; 有什么干净的方法可以做到这一点吗?我只能设计出繁琐和丑陋的解决方法,但是对于脚本语言,我觉得这应该变得非常简单。



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.