小编use*_*991的帖子

如何在bash中获取给定路径的根目录?

我的剧本:

    #!/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 /".

提前致谢!:)

directory bash path dirname

14
推荐指数
3
解决办法
3万
查看次数

如何检查Linux shell脚本是否由cronjob执行?

是否有可能确定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)

shell cron cron-task

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

Laravel 5.8:显示雄辩的项目,基于时间戳排序

我不确定如何称呼它,所以我将尽力解释。

我有一个票务系统,在其中显示所有评论。在不同部分中,我显示相关信息,例如“支持者已更改”,“票证标题已更改”,“票证状态已更改”等。

当前呈现的(无样式的)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)

php mysql laravel eloquent

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

如果安装了某些软件,我如何签入bash脚本?

我想查看软件列表,如果已安装或未安装.如果没有,它应该显示,脚本应该中止/退出.如果我执行一次脚本,输出应如下所示:

  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)

bash install package

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

SMTP:在从 Laravel 5.7 (Swift Mailer) 发送电子邮件时更改消息 ID 域

Laravel 5.7 使用 Swift Mailer 发送电子邮件。

默认情况下,所有发送的电子邮件都将Message-ID带有域的标题swift.generated(例如。Message-ID: <90b9835f38bb441bea134d3ac815dd6f@swift.generated>)。

例如,我想将域更改swift.generatedmy-domain.com.

如何为所有电子邮件更改此设置?

smtp swiftmailer email-headers laravel laravel-5

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

在bash上排序版本字符串

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对所有这些版本字符串进行排序,最新版本是否在顶部?

linux bash shell

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

Laravel 5.6:如何发送电子邮件,客户端将它们显示为线程/对话?

我的 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 应用程序这些电子邮件是一个线程/对话?

我想,它只需要是相同的电子邮件主题,但它不起作用。

email email-threading laravel laravel-5

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

Linux Shell脚本:在变量/文件中保存命令输出?

我想使用命令的一些输出,但我不知道,如何将输出保存在变量或文件中.

该脚本通过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服务器.

linux variables bash shell telnet

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

MySQL SELECT全部预期日期时间超过24小时

数据库结构包含"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)

希望,有人可以帮助我.:/

php datetime mysqli date-arithmetic

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