很容易,我正在编写一个脚本,它需要一些浮点后有 2 位数字的值。尝试使用bc我不明白如何使用“比例”,即
A=12 ; bc <<< $(($A/5))
Run Code Online (Sandbox Code Playgroud)
这是正确的,但添加“比例”会导致错误:
A=12 ; bc <<< 'scale=2;$(($A/5))'
(standard_in) 1: illegal character: $
(standard_in) 1: illegal character: $
Run Code Online (Sandbox Code Playgroud) 在我的用户的 crontab 中,在 CentOS 系统上,我有这样的东西:
58 12 * * * cd /home/joe/dev; echo `pwd` | logger
Run Code Online (Sandbox Code Playgroud)
这在 /var/log/messages 中输出:
Feb 19 12:58:01 srv01 joe: /home/joe
Run Code Online (Sandbox Code Playgroud)
而不是输出:
Feb 19 12:58:01 srv01 joe: /home/joe/dev
Run Code Online (Sandbox Code Playgroud)
为什么输出时不保留目录pwd?
我正在为 Proxmox 4 服务器设置一个从 Proxmox 3.4 迁移 OpenVZ 转储的脚本。脚本 scp 备份,恢复它们等等。
在此过程中,我想擦除 /etc/network/interfaces 并使用“pct set”设置一个新的。
我的问题如下:要将默认基本配置写入 /etc/network/interface,我使用 lxt-attach。我错误地使用了这个:
lxc-attach -n 101 -- echo "auto lo" > /etc/network/interfaces
Run Code Online (Sandbox Code Playgroud)
你明白了:我擦除了主机的网络配置。那么有人可以告诉我如何执行此命令:
echo "auto lo" > /etc/network/interfaces
Run Code Online (Sandbox Code Playgroud)
在使用 lxc-attach 的容器中?
非常感谢 ;)
这是脚本
bash --version | head -n1
if [ "$1" == "now" ]
then
echo if now
execut job
else
echo else "_"$1"_" # make sure we are not picking any spaces
if [ condition ]
then
execut something else
fi
fi
./script now
if now
Run Code Online (Sandbox Code Playgroud)
如果从交互式 shell 运行,则按预期工作。但是,如果从 cron as 调用,则 if 会转到 else 块
* * * * * root /home/user/./script now >> /tmp/log
cat /tmp/log
GNU bash, version 4.3.11(1)-release (x86_64-pc-linux-gnu)
else _now_
Run Code Online (Sandbox Code Playgroud)
也与“-eq”相同。
我是否因为没有吃早餐而错过了一些非常简单的事情?
运行 Ubuntu 14.04LTS。
我们有一个人退休了,留下的文件有点轻描淡写。需要一点帮助来识别和使用旧的客户端-服务器系统。
服务器本身由几位优秀的 Unix 管理员维护。我们目前在服务器端运行 AIX 7.1.0.0。
然而,当我们使用专有的 SSH 客户端登录时,我们会看到一个看起来很熟悉但在其他方面很奇怪的 shell。外壳本身似乎是 KornShell:
echo $0
-ksh
Run Code Online (Sandbox Code Playgroud)
但是外壳不响应正常的外壳命令(无法向上/向下点击以调用最近的命令,无法正常退格,无法使用制表符自动完成等)
使用最近的命令调用 ESC + k
如果ESC键被敲击,则终端停止响应于输入,直到i,a,s,或cc被压(或k,如已经提到带来了最近的命令)。
要编辑调用的命令,我们必须点击 SHIFT + UP
Backspace 实际上是RIGHT箭头,要清除输入的命令,我们必须点击SHIFT + RIGHT
该whence命令不可用,并且此页面上发现 KSH 版本的技术均无效。
我们办公室有人建议这是某种内联vi。
其他人有什么建议吗?有没有可用的文档?
这是我不久前研究过的,并找到了一些有用的信息......但现在我实际上需要这样做,当然我再也找不到我看到的指南了。
无论如何,情况是这样的。我有一个通过 SSH 使用 ncurses 菜单运行的程序。我希望用户能够通过 SSH 登录到该程序,但仅限于该程序。
我必须做什么才能使这种情况成为可能?
我的目标是完全限制他们看到命令行,并且仅限于该程序。这可能吗?我/我将如何去做?
使用 Ansible 我希望能够将运行命令的任务的 sysout 写入本地(即在托管服务器上)日志文件。目前我只能使用这样的任务来做到这一点:
- name: Run my command
shell: <command> <arg1> <arg3> ... |tee -a <local log file>
Run Code Online (Sandbox Code Playgroud)
这样做的原因是需要很长时间才能完成(即我们不能等到它完成才能获取其输出)并且希望在其执行期间收集输出。
是否有任何“Ansible”方法可以在不使用tee管道的情况下在执行期间将命令的 sysout 重定向到本地日志文件?
我只需要构建两个在不同端口上运行的守护进程实例。假设它们都为某些应用程序提供关键任务。
当其中一个无法提供服务时,如何执行一些自动任务(例如 shell 脚本)来检查两个守护进程?
什么样的脚本可以始终检查守护程序的生命周期,并且如果其中一个守护程序意外停止,也许可以执行其他一些作业?
当我尝试在 linux 命令提示符下(使用“pwd”)查找当前工作目录时,它将显示包含符号链接的目录。例如,如果我创建一个符号链接并使用它来访问该目录:
ln -s /mnt/backup /home/biotech/backup
cd /home/biotech/backup
pwd
Run Code Online (Sandbox Code Playgroud)
这将显示“/home/biotech/backup”而不是“/mnt/backup”。这发生在 Ubuntu 和 Cygwin 上。
我可以使用什么命令来查看后者,即“真实”目录?
我曾经知道一种运行我的 shell 脚本的方法,只要输入我的主文件夹或桌面中的名称即可。我讨厌打字./myscript.sh。我希望能够只输入myscript.sh. 我怎样才能修复我的终端来做到这一点?
我正在使用 GNOME 终端和 Ubuntu 9.04。