标签: input

如何正确捕获可选和非可选参数?

我想编写一个 shell 脚本,它将接受一些带有一些选项的参数并打印这些参数。假设该脚本的名称是abc.ksh. 该脚本的用法是 -
./abc.ksh -[a <arg>|b <arg>|c|d] <some_string>
现在我编写一个 shell 脚本,它将接受选项和参数

#!/bin/ksh

# Default Values
vara=","
varb=false
varbname=""
varc=false

# Scanning inputs
while getopts :a:b:cd option
do
        case $option in
                a) vara=$OPTARG;;
                   #shift $((OPTIND-1));;
                b) varb=true
                   varbname=$OPTARG;;
                   #shift $((OPTIND-1));;
                c) varc=true;;
                   #shift $((OPTIND-1));;
                d) echo "Usage $0 \-[a|b|c|d] <filename>"
                   exit 0;;
                \?) echo "Invalid option -$OPTARG. Please run '$0 -h' for help"
                    exit 1;;
                :) echo "Option -$OPTARG requires an argument. Please run '$0 -d' for …
Run Code Online (Sandbox Code Playgroud)

ksh options input shell-script getopts

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

使用 xargs 导入 sql 文件

我有许多 sql 文件要导入。对于单个文件,我使用以下命令:

mysql -u root -p dbname < db.sql

是否可以使用 xargs 批量导入所有文件?就像是: ls *.sql | xargs ....

我知道 mysqlimport 是解决方案,但我想知道 xargs 是否可以。

xargs input mysql

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

如何清除 Bash 中的输入

我有一个 bash 脚本正在读取大量数据 /dev/random。我需要用户随机键入以播种随机守护进程。然而,一旦脚本完成,输入的所有内容都将转储到命令输入。这是代码:

for i in ${users_thing[@]}
do
    pass[${num}] = $(dd if=/dev/random status=noexfer bs=1 count=128 | base64) & #generate password
    echo -n "Creating password: `expr $num + 1` of $sizes "     
#tell what's going of
    echo -en "\033[s"
    while [[ $(jobs) != *Exit* ]]  #while the program is still running 
    do
        for j in ${spinny_thing[@]} #now spin
        do 
           echo -en "\033[u\033[1D$j        "
        done
    done
    echo ""
    num=`expr $num + 1`
done
Run Code Online (Sandbox Code Playgroud)

所以我希望能够在不中断前台进程的情况下转储标准输入,因此read由于它暂停而被淘汰。有可能如何绘制它/dev/null吗?

bash input shell-script

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

为什么使用管道'|' 终止第二个进程,有没有办法阻止它?

只是为了提供一些上下文,我正在尝试运行此命令

echo "set hive.execution.engine=tez;" | hive
Run Code Online (Sandbox Code Playgroud)

一旦“set hive.execution.engine...”进入hive交互式shell,hive就会终止,

我想让它留在 hive 交互式 shell 中,但是 shell 然后终止,我又回到了普通的 linux shell。

pipe input exit apache-hive

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

shell 是否像其他命令一样具有相同的标准输入、标准输出、标准错误?

例如,bash 位于 /bin/bash 下,这意味着它是一个命令,每个命令都有三个 (0,1,2) 孔:标准输入、标准输出、标准错误。

这对于 shell 是否也是 100% 正确的,还是因为 shell 作为命令或进程的特殊含义而有什么不同?

shell bash input

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

作为命令行输入的不可打印字符

我有一个程序需要一些不可打印的字符,如0x0F ( ctrl+ o) 作为输入来执行程序的预期部分。

0       000     00              NUL     &#000;          Null char 
1       001     01              SOH     &#001;          Start of Heading
2       002     02              STX     &#002;          Start of Text
3       003     03              ETX     &#003;          End of Text
4       004     04              EOT     &#004;          End of 
Run Code Online (Sandbox Code Playgroud)

它正在命令行上执行,知道如何将不可打印的字符作为程序的输入插入命令行吗?

command-line standard input

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

向用户输入添加前导零,但正在使用 printf 进行转换

我目前正在寻找以下代码的替代方案,该代码的工作方式不那么“不稳定”。

printf "Please enter the ticket number:\t"; read vTICKET; vTICKET=$(printf %04d "$vTICKET"); printf "$vTICKET\n";
Run Code Online (Sandbox Code Playgroud)

如果我输入072作为输入,这就是我看到的

Please enter the ticket number: 072
0058
Run Code Online (Sandbox Code Playgroud)

我想知道是否有另一种方法可以让我对输入或read命令更加宽容?printf似乎是在不实际测试字符串长度的情况下添加前导零的酷方法。

bash input shell-script numeric-data printf

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

如何模拟通过终端程序发送击键?

我需要将按键虚拟发送到终端程序(如viemacs)。

我想做这样的事情:

echo -e 'iHello, world!\e' | vi
Run Code Online (Sandbox Code Playgroud)

然后使用此缓冲区打开一个vi会话:

Hello, world!
~
~
~
~
~
Run Code Online (Sandbox Code Playgroud)

但这不起作用,因为vi不通过stdin读取击键。

我收到此错误:

ex/vi: Vi's standard input and output must be a terminal
Run Code Online (Sandbox Code Playgroud)

如何将一些文本字符串发送到终端程序,就像直接在键盘上键入字符串一样?

terminal keyboard input input-method

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

从文件输入:“高级”(使用小于号)与“初学者”语法

我在grymoire 中阅读了以下内容

一个简单的例子是将“旧”文件中的“day”更改为“new”文件中的“night”:

sed s/day/night/ <old >new

或者另一种方式(对于 UNIX 初学者),

sed s/day/night/ old >new

为什么作者会认为第一种形式更高级?

我的意思是,与“初学者”语法相比,使用这种形式有什么优势?

command-line input

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

什么是 BTN_TRIGGER_HAPPY?

我正在使用 uinput 编写一种虚拟键盘,并在研究我应该输入的内容时

ioctl(fd, UI_SET_KEYBIT, ???);
Run Code Online (Sandbox Code Playgroud)

我发现input-event-codes.h. 有些常量是不言自明的 ( KEY_1, KEY_D, ...),但有些则有点神秘。

是否有任何文档列出并解释了这些键码?我试过谷歌,但BTN_TRIGGER_HAPPY没有把我带到任何有用的地方:/这个键码有什么用?

PS:如果有完整列表的地方,那将是很好的,有几个挺有意思的(KEY_HIRAGANAKEY_102ND...?)。

input header-file

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