我想记住不同脚本运行之间的关联数组。到目前为止,我所拥有的是给定一个包含一个键/值对的文本文件:
(
[james]=bond
)
Run Code Online (Sandbox Code Playgroud)
是一个脚本,用于将其加载到关联数组中,添加到其中,然后以可以重定向到第二个文件的方式将其回显:
#!/bin/bash
file=`cat $1`
key=$2
value=$3
declare -A row="$file"
row[$key]=$value
echo "("
for server in "${!row[@]}"
do echo "[$server]=${row[$server]}"; done
echo ")"
Run Code Online (Sandbox Code Playgroud)
然后我可以将它运行为:
./arrays.sh file1 honey rider > file2 ; mv file2 file1
Run Code Online (Sandbox Code Playgroud)
给予
(
[james]=bond
[honey]=rider
)
Run Code Online (Sandbox Code Playgroud)
然而它看起来非常笨重。有没有更干净的方法来做到这一点?
我想在我的 docker 镜像中运行一个后台队列:
\n\nphp artisan queue:work --daemon --sleep=1 --tries=3 &\nRun Code Online (Sandbox Code Playgroud)\n\n之后它立即启动httpd运行 PHPlaravel应用程序的 Apache。该laravel应用程序将推送通知发送到 Redis。后台队列工作程序从 Redis 收集消息并通过推送服务发送它们。
这有效并且每秒都会注销。如果后台命令崩溃,我希望它重新启动。根据这个答案https://unix.stackexchange.com/a/223780/72040我可以在后台无限运行命令,如下所示:
\n\nwhile true; do php $QUEUE_WORK; done &\nRun Code Online (Sandbox Code Playgroud)\n\n为了测试这一点,我运行了我的容器,docker run然后docker exec -it登录并查看:
UID PID PPID C STIME TTY TIME CMD\n100000 1 0 0 19:55 ? 00:00:00 httpd -D FOREGROUND\n100000 21 1 0 19:55 ? 00:00:00 /bin/sh -e /tmp/scripts/run\n100000 22 21 1 19:55 ? 00:00:01 php artisan …Run Code Online (Sandbox Code Playgroud) 我正在使用 test-kitchen 在不同的发行版上测试包的构建.deb。构建的文件在 Debian 和 Ubuntu 上都可以正常.deb安装该命令。/usr/bin我的问题是 Ubuntu 上没有安装手册页。.debUbuntu 上构建文件的内容是:
kitchen@ceddd8d3564c:/opt/workspace$ dpkg -c $(find . -name \*.deb)
drwxr-xr-x 0/0 0 2018-06-08 14:24 ./
drwxr-xr-x 0/0 0 2018-06-08 14:24 ./usr/
drwxr-xr-x 0/0 0 2018-06-08 14:24 ./usr/bin/
-rwxr-xr-x 0/0 33742 2018-06-08 14:24 ./usr/bin/git-secret
drwxr-xr-x 0/0 0 2018-06-08 14:24 ./usr/share/
drwxr-xr-x 0/0 0 2018-06-08 14:24 ./usr/share/man/
drwxr-xr-x 0/0 0 2018-06-08 14:24 ./usr/share/man/man7/
-rw-r--r-- 0/0 5298 2018-06-08 14:24 ./usr/share/man/man7/git-secret.7
drwxr-xr-x 0/0 0 2018-06-08 14:24 ./usr/share/man/man1/
-rw-r--r-- …Run Code Online (Sandbox Code Playgroud)