Questions tagged «shell-script»

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


6
在网络连接的OS X 10.6中运行脚本。(例如/etc/network/if-up.d/)
Mac OS X中出现网络接口时,有什么方法可以运行脚本? 我尝试将名为ip-up的脚本放在/ etc / ppp中,但是当我断开连接并重新连接到无线网络时,它似乎不会启动。 我不想不必执行cron作业来不断检查网络状态是否已更改。在某些Linux发行版中,可以通过将脚本放在/etc/network/if-up.d/中来完成此操作。Mac OS X有类似的东西吗?




3
如何用echo打印换行符?
我用hexdump这样的方式转储字符串2031 3334 2e30 0a32 2032 3331 302e 000a。很明显,这0x0a是换行符,但是,当我尝试回显此字符串时,总会得到1 430.2 2 13.0-用空格替换新行,即使我使用了-e标志。 可能是什么问题?拖尾会\0破坏输出吗?是否有其他选择来打印0x0a新行? 谢谢和最好的问候。

2
为什么在运行脚本时找不到[[:未找到?
我正在尝试编写一个脚本,该脚本必须检查文件是否存在。在控制台中,我写 if [[ -a /path/to/file.txt ]]; then echo "not mod"; else echo "mod"; fi 我得到 not mod 但是当我编写脚本执行相同的操作时: #!/bin/sh if [[ -a /path/to/file.txt ]]; then echo "not mod"; else echo "mod"; fi 然后执行脚本,我得到以下信息: ./ex.sh: 2: [[: not found mod 我将脚本保存在当前目录中,并将其命名为ex.sh,然后确保该脚本可执行。要调用脚本,我需要这样做: ./ex.sh 为什么会出现这个问题?我已经尝试了很多东西: if [ -a /home ... 和 if test …



1
我可以“导出”别名到调用脚本的SHELL吗?
我正在尝试编写定义某些别名的实用程序脚本。 我的外壳是tcsh(无法更改)。 我尝试了以下 #!/bin/tcsh alias log 'less ~/logs/log.`date '+%Y%m%d'`'' 然后我像这样运行它: ./myscript log 我得到的输出是: log: Command not found. 当然,如果我这样运行它: source myscript log 一切都很好。 没有指定的任何方法source ...吗?

3
如何在启动时执行Shell脚本?
我创建了一个脚本来启动服务器(我的第一个问题)。现在,我希望它在系统启动时运行并启动定义的服务器。我应该怎么做才能做到这一点? 我的发现告诉我,将此文件放在该/etc/init.d位置,它将在系统启动时执行。但是我不明白启动时的第一个参数是start什么?这个预定义的地方可以start用作$1吗?如果我希望startall启动脚本中的所有服务器,那么我可以管理哪些选项? 我的脚本是这样的: #!/bin/bash case "$1" in start) start ;; stop) stop ;; restart) $0 stop $0 start ;; *) echo "usage: $0 (start|stop|restart)" ;; esac

2
Unix脚本:等待文件存在
我需要一个脚本,等待(examplefile.txt)出现在/ tmp目录中 并且一旦找到它就停止程序,否则就休眠文件直到找到它 到目前为止,我有: 如果[!-f /tmp/examplefile.txt] 然后

2
以编程方式在gnome-terminal中打开选项卡,执行命令并使选项卡保持打开状态
我试图编写一个命令,该命令将启动几个终端选项卡,在每个选项卡中执行一些操作,并在命令完成后使每个选项卡保持打开状态,因此我可以查看输出并在每个选项卡中键入更多命令 像这样的东西: gnome-terminal --tab -e "ls -a" --tab -e "ls" 但是这样做的问题是,一旦“ ls”命令完成,这些选项卡就会关闭。有谁知道如何使选项卡保持打开状态?


5
如何在shell中测试变量是否等于数字
我有这个无效的shell脚本。 输入: Server_Name=1 if [ $Server_Name=1 ]; then echo Server Name is 1 else echo Server Name is not 1 fi 输出: Server Name is 1 但是,如果我改变了Server_Name=2,输出是: Server Name is 1 当我更改Server_Name为时2,我想说:Server Name is 2。 我知道这是if [ $Server_Name=1 ];一部分。 我如何解决它?

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.