标签: unix-shell

Shell 脚本和正则表达式:哪个更适合匹配数字,[[:digit:]] 或 [0-9]?

正如标题所暗示的,哪个更适合匹配数字,[[:digit:]]还是[0-9]

我正在使用 bash shell

谢谢 :)

bash unix-shell regular-expressions

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

如何识别古老的 KornShell 版本?

我们有一个人退休了,留下的文件有点轻描淡写。需要一点帮助来识别和使用旧的客户端-服务器系统。

服务器本身由几位优秀的 Unix 管理员维护。我们目前在服务器端运行 AIX 7.1.0.0。

然而,当我们使用专有的 SSH 客户端登录时,我们会看到一个看起来很熟悉但在其他方面很奇怪的 shell。外壳本身似乎是 KornShell:

echo $0
-ksh
Run Code Online (Sandbox Code Playgroud)

但是外壳不响应正常的外壳命令(无法向上/向下点击以调用最近的命令,无法正常退格,无法使用制表符自动完成等)

使用最近的命令调用 ESC + k

如果ESC键被敲击,则终端停止响应于输入,直到ias,或cc被压(或k,如已经提到带来了最近的命令)。

要编辑调用的命令,我们必须点击 SHIFT + UP

Backspace 实际上是RIGHT箭头,要清除输入的命令,我们必须点击SHIFT + RIGHT

whence命令不可用,并且此页面上发现 KSH 版本的技术均无效。

我们办公室有人建议这是某种内联vi

其他人有什么建议吗?有没有可用的文档?

ibm shell ksh aix unix-shell

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

如何检查文件是否存在

如何使用 shell 脚本确定文件是否存在?

IE:

#!/bin/sh

if [ Does File Exist? ]
then
    do this thing
fi
Run Code Online (Sandbox Code Playgroud)

linux unix-shell

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

sudo 和 sudo -i 访问功能

sudo 和 sudo -i 之间的特权区别是什么?

有了sudo

    $sudo echo "search foo.bar.baz" >> /etc/resolv.conf
    bash: /etc/resolv.conf: Permission denied
Run Code Online (Sandbox Code Playgroud)

...与 sudo -i

    $sudo -i
    #echo "search foo.bar.baz" >> /etc/resolv.conf
Run Code Online (Sandbox Code Playgroud)

...有用。特权是:

    drwxr-xr-x 166 root root 12288 2009-10-17 21:02 .
    -rw-r--r--   1 root root 42    2009-10-17 20:55 /etc/resolv.conf
Run Code Online (Sandbox Code Playgroud)

我很惊讶这些命令有不同的行为,是什么导致 justsudo版本失败?

sudo unix-shell file-permissions

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

在 echo 中抑制 * 的扩展

我正在编写一个脚本,该脚本每天动态执行一些查询。这些查询来自数据库中的一个表。

以下是查询表的示例输出:

+---------------+-------------------------------+---------+
| query_name    | query                         | userid  |
+---------------+-------------------------------+---------+
| All_User      | select * from users LIMIT 10; | jmatthe |
+---------------+-------------------------------+---------+
Run Code Online (Sandbox Code Playgroud)

现在,我必须select * from users LIMIT 10;动态执行查询。我正在读取输出的每一行并存储来自输出的查询。

query_name=$(echo $query | cut -d\| -f1)
query_sql=$(echo $query | cut -d\| -f2)
query_user=$(echo $query | cut -d\| -f3)
Run Code Online (Sandbox Code Playgroud)

现在这里是问题出现的地方。因为我的行中包含一个*字符,所以echo $query扩展*以将其替换为当前目录中的文件。所以基本上,我的query_sql商店是这样的。

select batchemail.sh query_output.txt from tbl_query
Run Code Online (Sandbox Code Playgroud)

我想保留*行中的 ,以便在我的query_sql变量中得到相同的结果。我希望我的query_sql变量存储原始数据。

select * from tbl_query
Run Code Online (Sandbox Code Playgroud)

有人可以指导我吗?

mysql command-line-interface unix-shell echo shell-scripting

3
推荐指数
2
解决办法
192
查看次数

在 PASE 中编辑 PATH

我正在运行 ZendServer6 的 IBMi 上进行一些 PHP 开发。我必须通过 /usr/local/zendsvr6/bin/php-cli 的完整路径调用 PHP。是否有我可以在我的主目录中编辑的点文件,或者我可以从绿屏进行一些配置更改,或者请求使用 QSECOFR make 的人将该路径添加到我的启动路径中?

unix-shell ibm-midrange

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

查找指向特定文件的所有符号链接

我知道这ls -l会给你“链接数”,但我正在寻找一个命令或命令组合,它会给我一个指向特定文件的所有符号链接的列表。

unix unix-shell

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

如何在一个命令行中 ls 和知道符号链接的目标?

我需要在一个命令行中获取文件夹内容,现在如果我执行 stat 或 ls,它会告诉我文件类型是符号链接,但它不会告诉我它是文件还是文件夹。

我正在使用这个;

stat -c '{"name": "%n", "size": "%s", "perms":"%a","type":"%F","user":"%U", "dereference","%N"}' /*;
Run Code Online (Sandbox Code Playgroud)

重要的一点是,我需要一个单衬和非常快速的输出。我无法通过 ls 解决这个问题,也许有使用 find、locate 等的解决方案。或者如果你知道如何从 mlocatedb 读取?

谢谢,

unix-shell

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

按行号从文本文件中选取一行

在 Unix shell 中,如何通过行号从文本文件中选择一行?

假设我希望将animals.txt 中第3 行的任何内容写入标准输出(bat bat bat)。

monkey monkey monkey
cat cat cat
bat bat bat
horse horse horse
Run Code Online (Sandbox Code Playgroud)

有没有标准的程序或简单的方法来做到这一点?

(还有一种情况是文本文件没有包含足够的行来包含您要求的行号)

unix shell bash unix-shell

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

计算单行 CSV 文件中的项目数?

我有一个文件,其中包含一长串以逗号分隔的数字,如下所示:

2,8,42,75,101
Run Code Online (Sandbox Code Playgroud)

获取此文件中数字计数的最简单命令(来自 Unix shell)是什么?在上面的示例中,这将是5.

scripting unix-shell csv

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