标签: shell

比较Bash中的数字

我开始学习为bash终端编写脚本,但我无法弄清楚如何让比较正常工作.我正在使用的脚本是:

echo "enter two numbers";
read a b;

echo "a=$a";
echo "b=$b";

if [ $a \> $b ];
then 
    echo "a is greater than b";
else
    echo "b is greater than a";
fi;
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是它比较了第一个数字的数字,即9大于10000,但1大于09

如何将数字转换为类型以进行真正的比较?

bash shell numeric

462
推荐指数
8
解决办法
79万
查看次数

Unix shell脚本找出脚本文件所在的目录?

基本上我需要使用与shell脚本文件位置相关的路径运行脚本,如何将当前目录更改为脚本文件所在的目录?

unix shell

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

如何为屏幕指定名称?

screen在命令shell上使用多路复用器工具并打开很多屏幕.然后我忘记哪个进程ID与哪个任务相关联.

我想为屏幕设置名称,但在联机帮助页中找不到选项.

目前,列出屏幕如下所示:

There are screens on:
    5422.pts-1.aws1 (Detached)
    5448.pts-1.aws1 (Detached)
    5027.pts-1.aws1 (Detached)
3 Sockets in /var/run/screen/S-sb.
Run Code Online (Sandbox Code Playgroud)

我希望看到这样的事情:

There are screens on:
    5422.logCleanWorker (Detached)
    5448.overNightLongTask(Detached)
    5027.databaseOverNightLongTask (Detached)
3 Sockets in /var/run/screen/S-sb.
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

unix linux shell gnu-screen

455
推荐指数
4
解决办法
31万
查看次数

连接多个设备时如何使用ADB Shell?失败"错误:多个设备和模拟器"

$ adb --help
Run Code Online (Sandbox Code Playgroud)

...

-s SERIAL  use device with given serial (overrides $ANDROID_SERIAL)
Run Code Online (Sandbox Code Playgroud)

...

$ adb devices
List of devices attached 
emulator-5554 device
7f1c864e  device
Run Code Online (Sandbox Code Playgroud)

...

$ adb shell -s 7f1c864e
error: more than one device and emulator
Run Code Online (Sandbox Code Playgroud)

shell android cmd adb android-debug

427
推荐指数
10
解决办法
32万
查看次数

如何将文件读入shell中的变量?

我想读取一个文件并将其保存在变量中,但我需要保留变量而不是打印出文件.我怎样才能做到这一点?我写过这个剧本,但它不是我需要的:

#!/bin/sh
while read LINE  
do  
  echo $LINE  
done <$1  
echo 11111-----------  
echo $LINE  
Run Code Online (Sandbox Code Playgroud)

在我的脚本中,我可以将文件名作为参数,因此,如果文件包含"aaaa",例如,它会打印出来:

aaaa
11111-----
Run Code Online (Sandbox Code Playgroud)

但这只是将文件打印到屏幕上,我想将其保存到变量中!是否有捷径可寻?

unix shell sh

424
推荐指数
6
解决办法
83万
查看次数

如何将输出附加到文本文件的末尾

如何将命令的输出附加到文本文件的末尾?

bash shell

419
推荐指数
12
解决办法
50万
查看次数

向进程组的所有成员发送信号的最佳方法是什么?

我想杀死整个进程树.使用任何常用脚本语言执行此操作的最佳方法是什么?我正在寻找一个简单的解决方案.

linux shell signals process

409
推荐指数
16
解决办法
37万
查看次数

如何在Ubuntu Linux中将一个文件附加到另一个文件?

我有两个文件:file1file2.如何追加内容file2file1使内容file1持久化?

linux shell ubuntu file append

406
推荐指数
7
解决办法
45万
查看次数

如果任何命令返回非零值,则中止shell脚本?

我有一个调用许多命令的Bash shell脚本.如果任何命令返回非零值,我希望shell脚本自动退出,返回值为1.

如果没有明确检查每个命令的结果,这可能吗?

例如

dosomething1
if [[ $? -ne 0 ]]; then
    exit 1
fi

dosomething2
if [[ $? -ne 0 ]]; then
    exit 1
fi
Run Code Online (Sandbox Code Playgroud)

unix linux bash shell

405
推荐指数
8
解决办法
18万
查看次数

bash/fish命令用于打印文件的绝对路径

问题:是否有一个简单的sh/bash/zsh/fish/...命令来打印我提供的文件的绝对路径?

用例:我在目录中/a/b,我想c在命令行上打印文件的完整路径,以便我可以轻松地将其粘贴到另一个程序中:/a/b/c.简单但是一个小程序可以在处理长路径时节省大约5秒钟,这最终会增加.因此,令我惊讶的是,我无法找到标准实用程序来执行此操作 - 真的没有吗?

这是一个示例实现,abspath.py:

#!/usr/bin/python
# Author: Diggory Hardy <diggory.hardy@gmail.com>
# Licence: public domain
# Purpose: print the absolute path of all input paths

import sys
import os.path
if len(sys.argv)>1:
    for i in range(1,len(sys.argv)):
        print os.path.abspath( sys.argv[i] )
    sys.exit(0)
else:
    print >> sys.stderr, "Usage: ",sys.argv[0]," PATH."
    sys.exit(1)
Run Code Online (Sandbox Code Playgroud)

bash shell path

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

标签 统计

shell ×10

bash ×4

linux ×4

unix ×4

adb ×1

android ×1

android-debug ×1

append ×1

cmd ×1

file ×1

gnu-screen ×1

numeric ×1

path ×1

process ×1

sh ×1

signals ×1

ubuntu ×1