标签: bash

向现有屏幕会话发送命令?

我有一个在屏幕会话(游戏服务器)中运行的 Java 应用程序,我希望能够编写一个脚本来定期向它发送命令(可能使用 cron),但我不确定如何发送命令到正在运行的屏幕会话。

这可能吗?由于我不仅向屏幕发送更多 shell 命令,而且将文本放入正在运行的 Java 控制台,这一事实可能会变得复杂。

bash gnu-screen

1
推荐指数
1
解决办法
5138
查看次数

osx shell 在使用后终止

我有一个更改目录然后运行的 shell 脚本。我希望一旦脚本终止,目录更改就会冒泡到命令提示符。

所以,我运行它:

. script
Run Code Online (Sandbox Code Playgroud)

但是,现在当脚本终止时,整个窗口都会终止。有没有办法来解决这个问题?

我的外壳是 bash。

bash command-line shell-script macos

1
推荐指数
1
解决办法
171
查看次数

将命令别名为另一个命令

我正在尝试在 bash 中创建别名,例如:

别名 cat /home/file='cat /home/thisfile'

我不知道为什么这不起作用。我到处尝试在谷歌上找到答案,据我所知,这个网站会得到答案。-珍妮丝

bash

1
推荐指数
1
解决办法
221
查看次数

-bash: ls: 在 Mac OS X 上的终端中找不到命令

我需要从现在开始在我的项目中使用 GIT,我需要使用一些 UNIX 命令。但无论我做什么,我总是收到“找不到命令”错误。

我安装了 MacPorts,但仍然无法运行任何 UNIX 命令:/

当我尝试时$ ls,我收到以下错误,对于sudo或任何其他命令也是如此:

-bash: ls: command not found
Run Code Online (Sandbox Code Playgroud)

当我尝试时$PATH,我得到以下几行:

hakan-yilmaz-MacBook-Pro:~ hakanyilmaz$ **$PATH**

-bash: /opt/local/bin:/opt/local/sbin:/opt/local/bin:/opt/local/sbin:/opt/local/bin:/opt/local/sbin:/Library/Frameworks/Python.framework/Versions/2.6/bin:/Library/Frameworks/Python.framework/Versions/Current/bin:/opt/subversion/bin/:PATH: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我使用的是 Mac OS X 10.6.6

我花了 2 到 3 天的时间,并继续使用谷歌搜索并尝试我在论坛上找到的所有内容,但没有成功。


解决方案:

我打开.bash_profile并删除了除

export PATH=/opt/local/bin:/opt/local/sbin:$PATH
Run Code Online (Sandbox Code Playgroud)

然后,我重新启动那台 Mac,它可以工作了!

unix terminal bash macos

1
推荐指数
1
解决办法
2万
查看次数

“tar -xzf”用于目录中的许多“tar.gz”文件

我在一个目录中有很多文件。他们每个人的名字都非常不同:

one.tar.gz
juk.tar.gz
cv.tar.gz
erf.tar.gz
vcx.tar.gz
cxcd.tar.gz
vc.tar.gz
jkjk.tar.gz
zxc.tar.gz
asd.tar.gz
ghj.tar.gz
kll.tar.gz
qwe.tar.gz
Run Code Online (Sandbox Code Playgroud)

一一提取非常耗时。所以我想使用一个命令提取所有这些文件。我试过tar -xzf *但没有用

bash shell tar

1
推荐指数
2
解决办法
1万
查看次数

执行一个命令并将结果放入一个变量中......所有这些都在一个 bash 脚本中

我正在编写一个 bash 脚本,该脚本在复制新文件之前备份配置文件。

这是我的代码段的样子:

mv ~/myStuff.conf  ~/myStuff.conf.bak
cp ~/new/myStuff.conf ~/myStuff.conf
Run Code Online (Sandbox Code Playgroud)

每次运行此脚本时,我都希望备份的文件名中有一个 unix 时间戳。我试过这个

DATEVAR=date +%s
mv ~/myStuff.conf  ~/myStuff.conf.$DATEVAR.bak
Run Code Online (Sandbox Code Playgroud)

但这不起作用,因为 date 函数不执行并且 bash 将其视为字符串,结果文件最终被

myStuff.conf.date+%s.bak
Run Code Online (Sandbox Code Playgroud)

关于如何将日期函数的结果转换为变量的任何想法?

bash bash-scripting

1
推荐指数
1
解决办法
608
查看次数

Rsync 只抓取新文件

我在存储中有一组文件,我只想获取新文件并将其放在另一个目录中。有没有办法做到这一点?

例如:

“旧文件”包含在:文件夹/旧文件中

我希望将来自 rsync 的新文件放入文件夹/ [并且我的脚本将在处理文件后将其放入旧文件中]

有没有办法用 rsync 做到这一点?

bash rsync

1
推荐指数
1
解决办法
5829
查看次数

Bash 提示故障

谁能解释一下 Ubuntu 的 bash 提示?

它基本上是 username@box:~$ 但让我困惑的部分是 $。它只是一个可以偏好的字母,还是有一些实际含义?

bash prompt ubuntu

1
推荐指数
1
解决办法
428
查看次数

start-stop-daemon 在命令行中工作,但在 /etc/init.d 脚本中不起作用

我正在尝试获取在 /etc/init.d/ar_sendmail 中工作的启动脚本(用于名为 ar_sendmail 的 ruby​​ gem):

#! /bin/sh

echo "in /etc/init.d/ar_sendmail"
DIR=/home/max/work/e_learning_resource/trunk
PATH=/var/lib/gems/1.8/bin
DAEMON=/var/lib/gems/1.8/bin/ar_sendmail
DAEMON_OPTS="-e production -d --batch-size 100 --delay 150"
NAME=ar_sendmail
DESC=ar_sendmail
PID_FILE=/home/max/work/e_learning_resource/trunk/shared/log/ar_sendmail.pid


test -x $DAEMON || exit 0
set -e

case "$1" in
  start)
        echo -n "Starting $DESC: "
        start-stop-daemon -d $DIR --start --quiet --pidfile $PID_FILE \
                --exec $DAEMON -- $DAEMON_OPTS
        echo "$NAME."
        ;;
  stop)
        echo -n "Stopping $DESC: "
        kill -TERM `cat $PID_FILE`        
    rm $PID_FILE
        echo "$NAME."
        ;;
  restart)
        echo -n "Restarting $DESC: "
        kill -TERM …
Run Code Online (Sandbox Code Playgroud)

bash init bash-scripting

1
推荐指数
1
解决办法
9567
查看次数

覆盖具有多行输出的 bash 命令的终端输出?

我有一个 bash 命令,我想每秒运行一次并保持输出显示在屏幕上。我可以执行以下操作:

while "true"; do foo; sleep 1; done
Run Code Online (Sandbox Code Playgroud)

但这会产生分散注意力的滚动。或者,我可以执行以下操作:

while "true"; do clear; foo; sleep 1; done
Run Code Online (Sandbox Code Playgroud)

但这会导致输出在清除和写入时闪烁。有没有一种好方法可以让命令的输出覆盖终端上的内容?

unix bash

1
推荐指数
1
解决办法
1856
查看次数