Questions tagged «shell-script»

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


4
Shell函数在Linux上存储在哪里?
刚开始时,我在寻找which某些程序作为参数后不输出任何内容的原因,例如cd。 根据我在这里找到的信息,原因可能是cd我的机器上有一个功能,可以通过运行确认type cd。 TLDR:但是,由于which可以将由于$PATH变量而可以定位的普通程序放在这些$PATH文件夹之一中,因此函数或脚本之类的cd存储在哪里? user@linuxmchine:~$ type cd cd is a function cd () { __zsh_like_cd cd "$@" }

2
如何使用Linux Shell编辑Excel文件(xlsx)
有没有一种方法(工具)可以使用Linux Shell编辑XLSX文件?我需要的是从第一个工作表中删除最后三行而不是空行的方法。 我知道XLSX只是一个zip文件,里面装有不同的XML文件,我可以对其进行单独编辑。但是,如果可能的话,我想避免自己分析和更改XML文件。

3
循环搜索一系列数字以使用wget下载
如何编写将执行以下操作的bash脚本: URL = "example.com/imageID=" while (1..100) wget URL + $i #it will wget example.com/imageID=1, then 2, then 3, etc done 因此,我有许多循环要执行,URL以循环中的数字结尾。我需要wget所有这些。

2
为什么`route`在转储路由表之前挂了一段时间?
键入命令: % route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.1.0 * 255.255.255.0 U 2 0 0 wlan0 link-local * 255.255.0.0 U 1000 0 0 wlan0 (... hang for a while ...) default 192.168.1.1 0.0.0.0 UG 0 0 0 wlan0 在这里,在default打印最后一行规则之前,路由仅挂了一段时间。 路由表不是缓存在某个地方吗? 我曾经使用grep的结果route来获取default规则,以获取默认网关。现在,route似乎在某些机器上挂了一段时间。

1
当curl获得非200 HTTP状态时退出bash脚本
我有一个bash脚本设置来执行一些curl请求 for currency in EUR INR JPY do curl -i --data '{"currency": "'$currency'"}' -H "Accept: application/json" -H "Content-Type: application/json" http://0.0.0.0:8080/price && echo done 如果其中一个curl响应返回http状态!= 200,是否有办法使脚本退出? 我还希望保留标准的curl输出,例如,我不希望仅打印http状态代码的解决方案。 干杯

7
如何在bash shell脚本中回显命令,但不执行命令?
是否可以通过回显命令来运行Shell脚本,但实际上不执行这些命令? 假设我有脚本删除名称存储在变量中的文件: #!/bin/bash set -v FN="filename" rm -f ${FN} 添加set -v将在执行前回显以下命令: $ ./scr.sh FN="filename" rm -f ${FN} 现在,我想看看没有实际删除文件的该脚本的流程。IOW,我想防止对外部环境和文件系统的任何影响。这可能吗? 我可以用命令包装所有命令echo,但冗长的脚本很累人。

6
在后台启动linux进程
我正在尝试创建一个启动某些程序的脚本 startup.sh knetworkmanager emesene keepassx 问题是,当我运行脚本时,它只启动knetworkmanager。这是因为它会启动它,然后等到它完成。如何在不等待的情况下启动程序?我不认为我可以在每个命令后添加“&”,因为脚本完成后所有进程仍将被终止。

1
从Shell脚本中的plist嵌套字典中读取值
我有一个plist文件,我对使用shell脚本从嵌套字典中获取值感兴趣。这是我的plist文件的结构: <dict> <key>Countries</key> <dict> <key>USA</key> <dict> <key>Capital</key> <string>Washington DC</string> <key>Continent</key> <string>North America</string> </dict> <key>Italy</key> <dict> <key>Capital</key> <string>Rome</string> <key>Continent</key> <string>Europe</string> </dict> </dict> </dict> 如果用户提供了国家/地区名称,我有兴趣获取分配给“大写”键的值。 例如,如果我执行以下命令,则将在“国家”词典下获取完整的数据。 defaults read "/Users/sameerp/Downloads/data" Countries 2>&1 我得到以下输出: { Italy = { Capital = Rome; Continent = Europe; }; USA = { Capital = "Washington DC"; Continent = …


3
如何直接从外壳运行python程序?
我写了一个剧本。当它启动时,它不会停止,并且不断从Internet获取数据。我可以这样称呼它: cd /User/Desktop/project/internetScanner/ python3 main.py start 但是我想从这样的终端直接在目的地内调用它: internetScanner start 我该怎么办?

4
测试是否在APT中安装了软件包
我想要一个外壳脚本方法来测试/报告是否安装了软件包。我不需要详细信息,只需布尔返回即可设置逻辑流程。我查看了“ 查找是否已安装软件包”,但是dpkg返回复杂的输出,并且其格式会根据软件包是在Debian存储库中还是在Ubuntu PPA中而变化。 我发现这apt-cache做得很好,并提出了以下方法: is_installed=0 test_installed=( `apt-cache policy package-name | grep "Installed:" ` ) [ ! "${test_installed[1]}" == "(none)" ] && is_installed=1 有谁知道更简单或更直接的方法?

2
如何通过应用程序关闭窗口并传递文件名?
我试图产生一个基于Applescript的shell命令,该命令告诉Mac OS X中的Preview应用程序关闭特定窗口。 #!/bin/sh osascript <<EOF tell application "Preview" close "$1" end tell EOF 但这不起作用:我收到错误消息 25:52: execution error: Preview got an error: "musixdoc.pdf" doesn’t understand the close message. (-1708) 相关问题:如何使用.bash_profile中定义的别名从命令行关闭OS X应用程序?

2
是否可以检查bash脚本中是否设置了-e?
如果外壳程序功能需要特定的-e / + e设置才能起作用,是否可以在本地设置该设置,然后在退出该功能之前将其恢复为以前的设置? myfunction() { # Query here if -e is set and remember in a variable? # Or push the settings to then pop at the end of the function? set +e dosomething doanotherthing # Restore -e/+e as appropriate, don't just do unconditional set -e }


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.