标签: scripting

awk BEGIN 中的 $2(字段参考)不起作用

在以下代码段中,$2awk 返回空。我究竟做错了什么?我试图找到 MAX 和 MIN 之间的区别。

#!/bin/ksh
if [ $# -ne 1 ]; then
        echo "Usage: sh `basename ${0}` filename";
        exit 1;
fi
if [ ! -s ${1} ]; then
        echo "file doesn't exist or is empty";
        exit 1;
fi
sed -e '/^$/d' -e '/^#/d' ${1} |
awk  -F'=' '
        BEGIN {
                MIN=$2; MAX=$2; print MIN;
        }
        {
                if ( $2 > MAX )
                {
                        MAX = $2;
                }
                else if ( $2 < MIN )
                {
                        MIN …
Run Code Online (Sandbox Code Playgroud)

shell scripting ksh awk

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

作为另一个用户在 bash 脚本中运行 expect

我正在编写一个 bash 脚本来安装我正在开发的一些小软件。该脚本以sudo(以 root 身份)运行,但脚本执行的某些命令需要(或应该)由我将其名称保留在$userName变量中的普通用户运行。大多数命令都是单行的,而且su -c "/what/ever/command" $userName效果很好。

但是,我不想运行的其中一个命令root会问我一些事情(实际上,只有一件事,但很多次:是否应该覆盖现有文件)。我可能称之为“ baaad_command”的那个命令没有提供默认答案的任何选项(没有“ --assume-no”或类似的东西)。

我看是可行的唯一选择是使用预期的命令,并回复“ n\r”命令输出和串巫婆开始与每一次“ Overwrite”,我想我的脚本没有答复(意为“ n\r“)多次baaad_command问"Overwrite... ? [y/n]"

我尝试了许多不同的 su、spawn、expect 组合……但没有任何运气。

这是我迄今为止的最后一次尝试:

#!/bin/bash
if [[ -d "$destinationFolder" ]] ; then
    if [[ -n "$userName" ]] ; then
        spawned=$(su -c expect -c "
            spawn baaad_command --user \"foo\" --passwd \"bar\" \"$destinationFolder\"
             expect {
                 Overwrite: { send \"n\r\"; exp_continue }
                 eof { exit }
             }
        " )
    else …
Run Code Online (Sandbox Code Playgroud)

scripting bash su expect

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

学习像 vi 这样的文本编辑器是否必要并且今天仍然值得花时间?

我开始了一个新的实习,所有的服务器都在AIX. 第一次登录时,我惊讶地发现我最喜欢的文本编辑器nano没有安装。

这里的每个人都使用vivim......只是vi

我以前试过学习它,我可以做基本的文本操作,但我不禁想知道......

当存在其他更现代的选择时,是否值得花时间和精力精通这种环境?

为什么我应该在终端中编写和编辑脚本,而不是启动具有更现代功能(例如自动完成和语法突出显示)的更新和“更高级”的 IDE?

更新

我要感谢大家的投入和帮助。我不认为劳动是徒劳的。

linux scripting ide editors vi

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

将服务器一个文件夹中的文件同步到其他文件夹

我需要一个脚本,其中一个服务器的文件将被复制到另一台服务器的其他文件夹,并且仅当源服务器文件上的文件在目标服务器上不存在时。

更多细节

如果用户在 SOURCE SERVER 上创建文件,并且当文件完成并保存它(命令或脚本)时,这将一直在 SOURCE 服务器上运行,如果文件存在于 DEST,首先检查 DESTINATION SERVER。如果不是,则将服务器复制到 DEST。服务器

如何做到这一点我不知道脚本。

scripting rhel rsync synchronization

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

如何使用可选参数?

我正在编写此脚本以用作快速草稿。它会打开带有日期和时间的文本编辑器,因此我可以插入一些草稿文本以快速保存。

1.首先,我想在文件的开头而不是末尾附加日期和时间,就像>> $file那样。但我想这不是那么容易,所以这不是我的优先事项。

2.我定义了一个论点$1。如果我只有几句话要插入,我认为最好运行draft "foo foo"而不是打开编辑器只写几句话。

嗯,它正在工作,但最后一行是不必要的。所以我想把它变成一个条件行。如果我不传递任何参数,则打开编辑器;别的没有。

对改进我的脚本有什么帮助吗?

#!/bin/bash
file=rascunho
folder=/home/$USER/
#linha=$(wc -l < $file)
content=$1
#rm $folder$file
printf "\n\n" >> $file
#echo " " >> $file
echo "------< $(date "+%b %d, %Y - %H:%M:%S") >------" >> $file
echo "$1" >> $file
exec leafpad  $file
Run Code Online (Sandbox Code Playgroud)

scripting bash

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

使用什么平台以编程方式编辑文本文件?

我只是自愿参与一个项目,该项目涉及创建一个程序来编辑服务器上的日志文件。通过编辑,我的意思是将有用的信息提取到另一个位置,并删除搜索到具有某些文本标识符的文本行。

我的问题是我不知道最有效的方法来做到这一点。

最好使用像python这样的脚本语言吗?还是应该创建 shell 文件?

我计划每晚让 cron 运行这项工作。

scripting text-processing

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

从 SSH 启动 shell 脚本并断开连接

我有一个从 SSH 运行的脚本,它启动了几个进程,当我与会话断开连接时,我希望这些进程保持打开状态。

那可行吗?在后台启动脚本不是解决方案....

更新

我的脚本使用不同的类路径启动一个 java 进程并调用其他 4 个脚本,每个脚本使用不同的类路径启动不同的 java 进程。

scripting ssh remote

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

(Ill) 逻辑语句

我正在尝试制作一个简单的脚本来翻转我的电脑屏幕。我的第一个 if 语句完美执行,但之后,认为 $istouch 是“on”,elif 语句块不会执行!我尝试使用 -u 选项运行 bash 没有失败,并尝试切换检查,但没有任何效果。

#!/bin/bash
xsetwacom --set 16 touch False
istouch='xsetwacom --get 15 touch'
$istouch
if [ "$istouch"=="off" ]
then
    xrandr -o inverted
    xinput set-prop 13 'Coordinate Transformation Matrix' -1 0 1 0 -1 1 0 0 1
    xinput set-prop 15 'Coordinate Transformation Matrix' -1 0 1 0 -1 1 0 0 1
    xinput set-prop 16 'Coordinate Transformation Matrix' -1 0 1 0 -1 1 0 0 1
    xsetwacom --set 15 touch True

elif …
Run Code Online (Sandbox Code Playgroud)

scripting bash

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

"FILENAME=$(echo $INFILE | grep -oE "[^/]+$") 是什么意思?

FILENAME=$(echo /root/Source/code/script.sh | grep -oE "[^/]+$")
Run Code Online (Sandbox Code Playgroud)

我知道它会给我文件路径中的文件名作为script.sh. 但是有人可以向我解释一下吗?

linux shell scripting shell-script

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

有没有办法从命令输出中找出行数?

我正在尝试比较两台服务器之间的命令输出。我想从诸如ls -l. 有没有办法这样做?到目前为止,我还没有发现任何东西。

shell scripting text-processing

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

标签 统计

scripting ×10

bash ×3

shell ×3

linux ×2

text-processing ×2

awk ×1

editors ×1

expect ×1

ide ×1

ksh ×1

remote ×1

rhel ×1

rsync ×1

shell-script ×1

ssh ×1

su ×1

synchronization ×1

vi ×1