我的剧本:
#!/usr/bin/env bash
PATH=/home/user/example/foo/bar
mkdir -p /tmp/backup$PATH
Run Code Online (Sandbox Code Playgroud)
现在我想获得"$ PATH"的第一个文件夹:/ home /
cd /tmp/backup
rm -rf ./home/
cd - > /dev/null
Run Code Online (Sandbox Code Playgroud)
如何像上面的示例一样始终检测第一个文件夹?"dirname $ PATH"只返回"/ home/user/example/foo /".
提前致谢!:)
是否有可能确定Linux shell脚本是由用户还是cronjob执行的?
如果是,如果shell脚本由cronjob执行,我如何识别/检查?
我想在我的脚本中实现一个功能,它返回一些其他消息,就像它是由用户执行一样.像这样例如:
if [[ "$type" == "cron" ]]; then
echo "This was executed by a cronjob. It's an automated task.";
else
USERNAME="$(whoami)"
echo "This was executed by a user. Hi ${USERNAME}, how are you?";
fi
Run Code Online (Sandbox Code Playgroud) 我不确定如何称呼它,所以我将尽力解释。
我有一个票务系统,在其中显示所有评论。在不同部分中,我显示相关信息,例如“支持者已更改”,“票证标题已更改”,“票证状态已更改”等。
当前呈现的(无样式的)HTML:https://jsfiddle.net/2afzxhd8/
我想将这两部分合并为一个,以便在票证的注释之间显示那些相关信息。所有内容(评论和相关信息)都应根据created_at时间戳显示。
呈现(未样式化)HTML的新目标:https ://jsfiddle.net/4osL9k0n/
在我的情况下,票务系统具有以下相关的雄辩模型(和表格):
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Tickets extends Model
{
use SoftDeletes;
protected $fillable = [
'tracking_number', 'customer_id', 'category_id',
'priority_id', 'subject', 'status_id', 'is_done',
'supporter_id'
];
protected $hidden = [
];
protected $dates = ['deleted_at'];
public function status() {
return $this->belongsTo(TicketStatuses::class, 'status_id');
}
public function priority() {
return $this->belongsTo(TicketPriorities::class, 'priority_id');
}
public function category() {
return $this->belongsTo(TicketCategories::class, 'category_id');
}
public function supporter() {
return $this->belongsTo(User::class, 'supporter_id');
} …Run Code Online (Sandbox Code Playgroud) 我想查看软件列表,如果已安装或未安装.如果没有,它应该显示,脚本应该中止/退出.如果我执行一次脚本,输出应如下所示:
wget is not installed
telnet is not installed
Run Code Online (Sandbox Code Playgroud)
目前它看起来如下:
wget is not installed
Run Code Online (Sandbox Code Playgroud)
再次执行脚本......
telnet is not installed
Run Code Online (Sandbox Code Playgroud)
如果未安装当前检查的软件,则当前脚本正在检查已安装的软件并中止/存在.这并不好,因为如果安装了每个软件,你必须运行脚本多次以识别和检查:
LINUX_DISTRIBUTATION=$(grep -Eo "(Debian|Ubuntu|RedHat|CentOS)" /etc/issue)
# Debian / Ubuntu
if [ -f /etc/debian_version ] || [ "$LINUX_DISTRIBUTATION" == "Debian" ] || [ "$LINUX_DISTRIBUTATION" == "Ubuntu" ]; then
declare -a NEEDED_SOFTWARE_LIST=(bash rsync wget grep telnet sed)
for SOFTWARE in ${NEEDED_SOFTWARE_LIST[@]}; do
dpkg -l | grep -i $SOFTWARE | head -1 | if [[ "$(cut -d ' ' -f 1)" != "ii" ]]; …Run Code Online (Sandbox Code Playgroud) Laravel 5.7 使用 Swift Mailer 发送电子邮件。
默认情况下,所有发送的电子邮件都将Message-ID带有域的标题swift.generated(例如。Message-ID: <90b9835f38bb441bea134d3ac815dd6f@swift.generated>)。
例如,我想将域更改swift.generated为my-domain.com.
如何为所有电子邮件更改此设置?
STRINGS.txt的示例内容:
3.0.3
3.0.11.2
3.0.11.1
3.0.11
3.0.16
3.0.15.1
3.0.15
3.0.14
3.0.10.3
3.0.10.2
3.0.10.1
3.0.13.1
3.0.10
3.0.13
3.0.9
3.0.12
3.0.8
3.0.7.2
3.0.7.1
3.0.7
3.0.9.2
3.0.9.1
3.0.2
3.0.8.1
3.0.6.1
3.0.6
3.0.5
3.0.1
3.0.0
Run Code Online (Sandbox Code Playgroud)
是否可以仅使用bash对所有这些版本字符串进行排序,最新版本是否在顶部?
我的 Laravel 应用程序包含一个票证系统,用于发送电子邮件通知。
所有电子邮件都是这样构建和发送的:
public function build()
{
$email_from_name = "Support - " . config('app.name');
$subject = "[" . $this->ticket->id . "] " . $this->ticket->subject . " - " . config('app.name');
return $this->from('support@example.com', $email_from_name)
->subject($subject)
->markdown('emails.customer.ticket.comment_added')
->with([
'nickname' => $this->user->nickname,
'ticket_id' => $this->ticket->id,
'ticket_subject' => $this->ticket->subject,
'ticket_text' => $this->ticket_comments->text,
]);
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,当我收到多封这样的电子邮件时,没有电子邮件客户端(Outlook、Thunderbird、Roundcube...)将这些电子邮件显示为线程/对话。所有客户端将每封电子邮件显示为“新电子邮件”线程/对话。
有什么规定,有些电子邮件是一个线程/对话,有些则不是?我如何告诉我的 Laravel 应用程序这些电子邮件是一个线程/对话?
我想,它只需要是相同的电子邮件主题,但它不起作用。
我想使用命令的一些输出,但我不知道,如何将输出保存在变量或文件中.
该脚本通过telnet连接到指定的服务器并执行不同的命令.进一步的命令需要一个命令.好吧......我必须从命令输出中保存这些信息.
我的代码:
#!/bin/bash
(
echo open server portnumber
sleep 2s
echo "login username password"
sleep 1s
echo "use sid=1"
CLIENT_LIST=$(echo "clientlist")
sleep 1s
echo "clientupdate client_nickname=Administrator"
for client_id in $(echo $CLIENT_LIST | grep -Eo "clid=[0-9]+" | grep -Eo "[0-9]+"); do
echo "clientpoke clid=$client_id msg=How\sare\syou!"
sleep 1s
done
sleep 1s
echo "logout"
echo "quit"
) | telnet
Run Code Online (Sandbox Code Playgroud)
我想将命令'clientlist'的输出保存在变量或文件中.变量将是最佳解决方案.但实际上变量只保存'clientlist'而不是命令的输出.:(
我希望有人可以帮助我.提前致谢!:)
如果你想测试它:它是为TeamSpeak 3服务器.
数据库结构包含"2014-09-22 21:16:00"格式的日期时间列.
我想选择日期时间超过24小时的所有内容.
示例数据:
datetime
2014-10-15 21:00:00
2014-10-15 22:10:00
Run Code Online (Sandbox Code Playgroud)
SELECT*FROM表WHERE $ datetime早于24小时.
当前日期时间例如是2014-10-16 21:01:00.
结果应该是:
2014-10-15 21:00:00
Run Code Online (Sandbox Code Playgroud)
我想用当前的日期时间进行SELECT.
我试过跟随,但它不起作用:
SELECT id, datetime FROM table WHERE customerNumber="1" AND datetime < DATE_SUB(NOW(), INTERVAL 24 HOUR)
Run Code Online (Sandbox Code Playgroud)
希望,有人可以帮助我.:/